qlcnic: skip IDC ack check in fw reset path.
authorSritej Velaga <[email protected]>
Fri, 28 Oct 2011 12:57:11 +0000 (12:57 +0000)
committerDavid S. Miller <[email protected]>
Sun, 30 Oct 2011 07:09:39 +0000 (03:09 -0400)
In fw reset path, we should consider any change in device state as an
ack from the other driver. When that happens, we don't have to wait for
an explicit ack.

Signed-off-by: Sritej Velaga <[email protected]>
Signed-off-by: Anirban Chakraborty <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c

index 106503f118f6295002bab4b13382a2b58f771396..2edffcec930f68bfc1fcd11ec5e2505f9994827c 100644 (file)
@@ -2840,8 +2840,15 @@ qlcnic_fwinit_work(struct work_struct *work)
                goto wait_npar;
        }
 
+       if (dev_state == QLCNIC_DEV_INITIALIZING ||
+           dev_state == QLCNIC_DEV_READY) {
+               dev_info(&adapter->pdev->dev, "Detected state change from "
+                               "DEV_NEED_RESET, skipping ack check\n");
+               goto skip_ack_check;
+       }
+
        if (adapter->fw_wait_cnt++ > adapter->reset_ack_timeo) {
-               dev_err(&adapter->pdev->dev, "Reset:Failed to get ack %d sec\n",
+               dev_info(&adapter->pdev->dev, "Reset:Failed to get ack %d sec\n",
                                        adapter->reset_ack_timeo);
                goto skip_ack_check;
        }