FastLinQ devices as a complex systems may observe various hardware level error conditions, both severe and recoverable.
Driver is able to detect and report this, but so far it only did trace/dmesg based reporting. Here we implement an extended hw error detection, service task handler captures a dump for the later analysis. I also resubmit a patch from Denis Bolotin on tx timeout handler, addressing David's comment regarding recovery procedure as an extra reaction on this event. v2: Removing the patch with ethtool dump and udev magic. Its quite isolated, I'm working on devlink based logic for this separately. v1: https://patchwork.ozlabs.org/project/netdev/cover/cover.1588758463.git.irussk...@marvell.com/ Denis Bolotin (1): net: qede: Implement ndo_tx_timeout Igor Russkikh (10): net: qed: adding hw_err states and handling net: qede: add hw err scheduled handler net: qed: invoke err notify on critical areas net: qed: critical err reporting to management firmware net: qed: cleanup debug related declarations net: qed: attention clearing properties net: qede: optional hw recovery procedure net: qed: introduce critical fan failure handler net: qed: introduce critical hardware error handler net: qed: fix bad formatting drivers/net/ethernet/qlogic/qed/qed.h | 16 +- drivers/net/ethernet/qlogic/qed/qed_debug.c | 26 +- drivers/net/ethernet/qlogic/qed/qed_dev.c | 4 +- drivers/net/ethernet/qlogic/qed/qed_hsi.h | 49 +++- drivers/net/ethernet/qlogic/qed/qed_hw.c | 42 ++- drivers/net/ethernet/qlogic/qed/qed_hw.h | 15 ++ drivers/net/ethernet/qlogic/qed/qed_int.c | 40 ++- drivers/net/ethernet/qlogic/qed/qed_int.h | 11 + drivers/net/ethernet/qlogic/qed/qed_main.c | 34 +++ drivers/net/ethernet/qlogic/qed/qed_mcp.c | 254 ++++++++++++++++++ drivers/net/ethernet/qlogic/qed/qed_mcp.h | 28 ++ drivers/net/ethernet/qlogic/qed/qed_spq.c | 16 +- drivers/net/ethernet/qlogic/qede/qede.h | 14 +- .../net/ethernet/qlogic/qede/qede_ethtool.c | 24 ++ drivers/net/ethernet/qlogic/qede/qede_main.c | 147 +++++++++- include/linux/qed/qed_if.h | 26 +- 16 files changed, 700 insertions(+), 46 deletions(-) -- 2.17.1