summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSritej Velaga <sritej.velaga@qlogic.com>2011-10-28 12:57:11 (GMT)
committerDavid S. Miller <davem@davemloft.net>2011-10-30 07:09:39 (GMT)
commit16e3cf73befecd882399d6ec7b12e8fb2c7abf73 (patch)
tree2e455a015cbdd7c439101e16eb1cdebdc49a9094
parent9eeebb5bc8d984298cba9d12690923cdc09ab173 (diff)
downloadlinux-fsl-qoriq-16e3cf73befecd882399d6ec7b12e8fb2c7abf73.tar.xz
qlcnic: skip IDC ack check in fw reset path.
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 <sritej.velaga@qlogic.com> Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 106503f..2edffce 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -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;
}