aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic
diff options
context:
space:
mode:
authorAmeen Rahman <ameen.rahman@qlogic.com>2011-09-13 04:06:17 -0400
committerDavid S. Miller <davem@davemloft.net>2011-09-23 14:23:59 -0400
commit853d4bcaeb31905b85ba9f65f46cfaf9c41d1915 (patch)
treec763a87086b0c593d5472534fd9891c87b194b69 /drivers/net/ethernet/qlogic
parentfb7a6d4e7da219f895d156cad00e2b6373e2494f (diff)
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')
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c11
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
3087qlcnic_check_health(struct qlcnic_adapter *adapter) 3087qlcnic_check_health(struct qlcnic_adapter *adapter)
3088{ 3088{
3089 u32 state = 0, heartbeat; 3089 u32 state = 0, heartbeat;
3090 struct net_device *netdev = adapter->netdev; 3090 u32 peg_status;
3091 3091
3092 if (qlcnic_check_temp(adapter)) 3092 if (qlcnic_check_temp(adapter))
3093 goto detach; 3093 goto detach;
@@ -3127,8 +3127,8 @@ qlcnic_check_health(struct qlcnic_adapter *adapter)
3127 if (auto_fw_reset) 3127 if (auto_fw_reset)
3128 clear_bit(__QLCNIC_FW_ATTACHED, &adapter->state); 3128 clear_bit(__QLCNIC_FW_ATTACHED, &adapter->state);
3129 3129
3130 dev_info(&netdev->dev, "firmware hang detected\n"); 3130 dev_err(&adapter->pdev->dev, "firmware hang detected\n");
3131 dev_info(&adapter->pdev->dev, "Dumping hw/fw registers\n" 3131 dev_err(&adapter->pdev->dev, "Dumping hw/fw registers\n"
3132 "PEG_HALT_STATUS1: 0x%x, PEG_HALT_STATUS2: 0x%x,\n" 3132 "PEG_HALT_STATUS1: 0x%x, PEG_HALT_STATUS2: 0x%x,\n"
3133 "PEG_NET_0_PC: 0x%x, PEG_NET_1_PC: 0x%x,\n" 3133 "PEG_NET_0_PC: 0x%x, PEG_NET_1_PC: 0x%x,\n"
3134 "PEG_NET_2_PC: 0x%x, PEG_NET_3_PC: 0x%x,\n" 3134 "PEG_NET_2_PC: 0x%x, PEG_NET_3_PC: 0x%x,\n"
@@ -3140,6 +3140,11 @@ qlcnic_check_health(struct qlcnic_adapter *adapter)
3140 QLCRD32(adapter, QLCNIC_CRB_PEG_NET_2 + 0x3c), 3140 QLCRD32(adapter, QLCNIC_CRB_PEG_NET_2 + 0x3c),
3141 QLCRD32(adapter, QLCNIC_CRB_PEG_NET_3 + 0x3c), 3141 QLCRD32(adapter, QLCNIC_CRB_PEG_NET_3 + 0x3c),
3142 QLCRD32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x3c)); 3142 QLCRD32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x3c));
3143 peg_status = QLCRD32(adapter, QLCNIC_PEG_HALT_STATUS1);
3144 if (LSW(MSB(peg_status)) == 0x67)
3145 dev_err(&adapter->pdev->dev,
3146 "Firmware aborted with error code 0x00006700. "
3147 "Device is being reset.\n");
3143detach: 3148detach:
3144 adapter->dev_state = (state == QLCNIC_DEV_NEED_QUISCENT) ? state : 3149 adapter->dev_state = (state == QLCNIC_DEV_NEED_QUISCENT) ? state :
3145 QLCNIC_DEV_NEED_RESET; 3150 QLCNIC_DEV_NEED_RESET;