Pārlūkot izejas kodu

qcacld-3.0: Reject interface up during SSR

A recent change added a sleeping wait to the interface up handing code
in hdd_open, which can lead to transient deadlocks and cascading bad
behavior when Sub-System Restart (SSR) is in progress. Instead, simply
return -EBUSY when SSR is in progress, allowing the user to try again.

Change-Id: Id029090f9aafefa76d9778f8e5de5698b852495b
CRs-Fixed: 2132580
Dustin Brown 7 gadi atpakaļ
vecāks
revīzija
018477577d
1 mainītis faili ar 5 papildinājumiem un 5 dzēšanām
  1. 5 5
      core/hdd/src/wlan_hdd_main.c

+ 5 - 5
core/hdd/src/wlan_hdd_main.c

@@ -2563,17 +2563,17 @@ static int __hdd_open(struct net_device *dev)
 	MTRACE(qdf_trace(QDF_MODULE_ID_HDD, TRACE_CODE_HDD_OPEN_REQUEST,
 		adapter->sessionId, adapter->device_mode));
 
-	if (!hdd_wait_for_recovery_completion()) {
-		hdd_err("Recovery failed");
-		return -EIO;
-	}
-
 	/* Nothing to be done if device is unloading */
 	if (cds_is_driver_unloading()) {
 		hdd_err("Driver is unloading can not open the hdd");
 		return -EBUSY;
 	}
 
+	if (cds_is_driver_recovering()) {
+		hdd_err("WLAN is currently recovering; Please try again.");
+		return -EBUSY;
+	}
+
 	mutex_lock(&hdd_init_deinit_lock);
 
 	hdd_start_driver_ops_timer(eHDD_DRV_OP_IFF_UP);