Procházet zdrojové kódy

qcacld-3.0: Fix deadlock for pre CAC adapter unregister

Vendor command pre_doit holds wiphy lock inside kernel and calls
into driver vendor command handler and from driver vendor command handler
if unregister_netdevice() is called it will try to acquire same wiphy lock
inside kernel cfg80211_netdev_notifier_call() and deadlock.

To fix this issue from driver vendor command handler for pre CAC adapter
stop call cfg80211_unregister_netdevice to avoid recursive wiphy locking.

Change-Id: Id939016c1baf730707346f2375d0b952017a48f5
CRs-Fixed: 3493940
Rajeev Kumar před 1 rokem
rodič
revize
1ff8294469
1 změnil soubory, kde provedl 1 přidání a 0 odebrání
  1. 1 0
      core/hdd/src/wlan_hdd_pre_cac.c

+ 1 - 0
core/hdd/src/wlan_hdd_pre_cac.c

@@ -127,6 +127,7 @@ void hdd_close_pre_cac_adapter(struct hdd_context *hdd_ctx)
 	osif_vdev_sync_wait_for_ops(vdev_sync);
 
 	wlan_hdd_release_intf_addr(hdd_ctx, pre_cac_adapter->mac_addr.bytes);
+	pre_cac_adapter->is_virtual_iface = true;
 	hdd_close_adapter(hdd_ctx, pre_cac_adapter, true);
 
 	osif_vdev_sync_trans_stop(vdev_sync);