diff options
author | Ameen Rahman <ameen.rahman@qlogic.com> | 2011-09-13 08:06:17 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-09-23 14:23:59 -0400 |
commit | 853d4bcaeb31905b85ba9f65f46cfaf9c41d1915 (patch) | |
tree | c763a87086b0c593d5472534fd9891c87b194b69 /drivers/net/ethernet/qlogic/qlcnic | |
parent | fb7a6d4e7da219f895d156cad00e2b6373e2494f (diff) | |
download | linux-853d4bcaeb31905b85ba9f65f46cfaf9c41d1915.tar.bz2 |
qlcnic: Added error logging for firmware abort
Signed-off-by: Ameen Rahman <ameen.rahman@qlogic.com>
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index 501e16b9c2ab..445956e2d045 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c @@ -3087,7 +3087,7 @@ static int qlcnic_check_health(struct qlcnic_adapter *adapter) { u32 state = 0, heartbeat; - struct net_device *netdev = adapter->netdev; + u32 peg_status; if (qlcnic_check_temp(adapter)) goto detach; @@ -3127,8 +3127,8 @@ qlcnic_check_health(struct qlcnic_adapter *adapter) if (auto_fw_reset) clear_bit(__QLCNIC_FW_ATTACHED, &adapter->state); - dev_info(&netdev->dev, "firmware hang detected\n"); - dev_info(&adapter->pdev->dev, "Dumping hw/fw registers\n" + dev_err(&adapter->pdev->dev, "firmware hang detected\n"); + dev_err(&adapter->pdev->dev, "Dumping hw/fw registers\n" "PEG_HALT_STATUS1: 0x%x, PEG_HALT_STATUS2: 0x%x,\n" "PEG_NET_0_PC: 0x%x, PEG_NET_1_PC: 0x%x,\n" "PEG_NET_2_PC: 0x%x, PEG_NET_3_PC: 0x%x,\n" @@ -3140,6 +3140,11 @@ qlcnic_check_health(struct qlcnic_adapter *adapter) QLCRD32(adapter, QLCNIC_CRB_PEG_NET_2 + 0x3c), QLCRD32(adapter, QLCNIC_CRB_PEG_NET_3 + 0x3c), QLCRD32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x3c)); + peg_status = QLCRD32(adapter, QLCNIC_PEG_HALT_STATUS1); + if (LSW(MSB(peg_status)) == 0x67) + dev_err(&adapter->pdev->dev, + "Firmware aborted with error code 0x00006700. " + "Device is being reset.\n"); detach: adapter->dev_state = (state == QLCNIC_DEV_NEED_QUISCENT) ? state : QLCNIC_DEV_NEED_RESET; |