Message ID | 20200515212846.1347-10-mcgrof@kernel.org |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | net: taint when the device driver firmware crashes | expand |
On Fri, May 15, 2020 at 09:28:40PM +0000, Luis Chamberlain wrote: > This makes use of the new module_firmware_crashed() to help > annotate when firmware for device drivers crash. When firmware > crashes devices can sometimes become unresponsive, and recovery > sometimes requires a driver unload / reload and in the worst cases > a reboot. > > Using a taint flag allows us to annotate when this happens clearly. > > Cc: Ariel Elior <aelior@marvell.com> > Cc: GR-everest-linux-l2@marvell.com > Reviewed-by: Igor Russkikh <irusskikh@marvell.com> > Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> > --- > drivers/net/ethernet/qlogic/qed/qed_mcp.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c > index 9624616806e7..aea200d465ef 100644 > --- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c > +++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c > @@ -566,6 +566,7 @@ _qed_mcp_cmd_and_union(struct qed_hwfn *p_hwfn, > DP_NOTICE(p_hwfn, > "The MFW failed to respond to command 0x%08x [param 0x%08x].\n", > p_mb_params->cmd, p_mb_params->param); > + module_firmware_crashed(); > qed_mcp_print_cpu_info(p_hwfn, p_ptt); > > spin_lock_bh(&p_hwfn->mcp_info->cmd_lock); > -- > 2.26.2 > Acked-by: Rafael Aquini <aquini@redhat.com>
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c index 9624616806e7..aea200d465ef 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c @@ -566,6 +566,7 @@ _qed_mcp_cmd_and_union(struct qed_hwfn *p_hwfn, DP_NOTICE(p_hwfn, "The MFW failed to respond to command 0x%08x [param 0x%08x].\n", p_mb_params->cmd, p_mb_params->param); + module_firmware_crashed(); qed_mcp_print_cpu_info(p_hwfn, p_ptt); spin_lock_bh(&p_hwfn->mcp_info->cmd_lock);