]> git.baikalelectronics.ru Git - kernel.git/commit
sfc: fully reset if MC_REBOOT event received without warm_boot_count increment
authorDaniel Pieczko <dpieczko@solarflare.com>
Fri, 9 Oct 2015 09:40:35 +0000 (10:40 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 12 Oct 2015 12:35:25 +0000 (05:35 -0700)
commitedf02da324044c1b6425c4c0a59badd36628f0ee
tree0b61982b1be2d9ad6ec605010d14febf1ce00cdf
parentd4a3fa5b7b3466de9bc8967be527a5cba0a43287
sfc: fully reset if MC_REBOOT event received without warm_boot_count increment

On EF10, MC_CMD_VPORT_RECONFIGURE can cause a CODE_MC_REBOOT event
to be sent to a function without incrementing the (adapter-wide)
warm_boot_count.  In this case, the reboot is not detected by the
loop on efx_mcdi_poll_reboot(), so prepare for recovery from an MC
reboot anyway.  When this codepath is run, the MC has always just
rebooted, so this recovery is valid.

The loop on efx_mcdi_poll_reboot() is still required for other MC
reboot cases, so that actions in response to an MC reboot are
performed, such as clearing locally calculated statistics.
Siena NICs are unaffected by this change as the above scenario
does not apply.

Signed-off-by: Shradha Shah <sshah@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ef10.c
drivers/net/ethernet/sfc/mcdi.c
drivers/net/ethernet/sfc/net_driver.h