Kaynağa Gözat

qcacld-3.0: Clear bad state of driver at start of probe

During SSR we check if the driver is in bad state, to decide
whether we should send suspend to the fw. This causes a race
when SSR occurs during driver probe, since the driver state is
still marked as bad.

Clear the flag indicating the driver state as bad during the
start of probe.

CRs-Fixed: 2144058
Change-Id: I13087dc65dbffa6a784395606fac2c41f6ce7591
Rakesh Pillai 7 yıl önce
ebeveyn
işleme
0a54fa91df
1 değiştirilmiş dosya ile 1 ekleme ve 1 silme
  1. 1 1
      core/hdd/src/wlan_hdd_driver_ops.c

+ 1 - 1
core/hdd/src/wlan_hdd_driver_ops.c

@@ -367,6 +367,7 @@ static int wlan_hdd_probe(struct device *dev, void *bdev,
 		reinit ? "re-" : "", QWLAN_VERSIONSTR);
 
 	mutex_lock(&hdd_init_deinit_lock);
+	cds_set_driver_in_bad_state(false);
 	if (!reinit)
 		hdd_start_driver_ops_timer(eHDD_DRV_OP_PROBE);
 	else
@@ -413,7 +414,6 @@ static int wlan_hdd_probe(struct device *dev, void *bdev,
 	hdd_allow_suspend(WIFI_POWER_EVENT_WAKELOCK_DRIVER_INIT);
 	hdd_remove_pm_qos(dev);
 	cds_set_fw_down(false);
-	cds_set_driver_in_bad_state(false);
 	probe_fail_cnt = 0;
 	re_init_fail_cnt = 0;
 	hdd_stop_driver_ops_timer();