From: Ameen Rahman Date: Tue, 13 Sep 2011 08:06:17 +0000 (+0000) Subject: qlcnic: Added error logging for firmware abort X-Git-Tag: next-20110926~57^2~1 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=853d4bcaeb31905b85ba9f65f46cfaf9c41d1915;p=karo-tx-linux.git qlcnic: Added error logging for firmware abort Signed-off-by: Ameen Rahman Signed-off-by: Anirban Chakraborty Signed-off-by: David S. Miller --- 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;