Jelajahi Sumber

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>
Sritej Velaga 14 tahun lalu
induk
melakukan
16e3cf73be
1 mengubah file dengan 8 tambahan dan 1 penghapusan
  1. 8 1
      drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c

+ 8 - 1
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c

@@ -2840,8 +2840,15 @@ qlcnic_fwinit_work(struct work_struct *work)
 		goto wait_npar;
 		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) {
 	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);
 					adapter->reset_ack_timeo);
 		goto skip_ack_check;
 		goto skip_ack_check;
 	}
 	}