ソースを参照

qcacld-3.0: Set current mode properly for TDLS

This change fixes two issues about TDLS:
    1. It updates current mode only if tdls vdev object is NULL.
    2. Handles pre-scan callback but ignore scan done callback if device
       type isn't station or P2P client.

Change-Id: I4badbf3a7c40eca813a6360817d5483be88f2c5d
CRs-Fixed: 2769638
Wu Gao 4 年 前
コミット
56afad67cb
1 ファイル変更2 行追加5 行削除
  1. 2 5
      components/tdls/core/src/wlan_tdls_main.c

+ 2 - 5
components/tdls/core/src/wlan_tdls_main.c

@@ -1583,7 +1583,7 @@ static void tdls_set_current_mode(struct tdls_soc_priv_obj *tdls_soc,
 	if (vdev) {
 		tdls_debug("set mode in tdls vdev ");
 		tdls_vdev = wlan_vdev_get_tdls_vdev_obj(vdev);
-		if (!tdls_vdev)
+		if (tdls_vdev)
 			tdls_set_mode_in_vdev(tdls_vdev, tdls_soc,
 					      tdls_mode, source);
 		wlan_objmgr_vdev_release_ref(vdev, WLAN_TDLS_NB_ID);
@@ -1596,7 +1596,7 @@ static void tdls_set_current_mode(struct tdls_soc_priv_obj *tdls_soc,
 	if (vdev) {
 		tdls_debug("set mode in tdls vdev ");
 		tdls_vdev = wlan_vdev_get_tdls_vdev_obj(vdev);
-		if (!tdls_vdev)
+		if (tdls_vdev)
 			tdls_set_mode_in_vdev(tdls_vdev, tdls_soc,
 					      tdls_mode, source);
 		wlan_objmgr_vdev_release_ref(vdev, WLAN_TDLS_NB_ID);
@@ -1694,9 +1694,6 @@ void tdls_scan_complete_event_handler(struct wlan_objmgr_vdev *vdev,
 
 	device_mode = wlan_vdev_mlme_get_opmode(vdev);
 
-	if (device_mode != QDF_STA_MODE &&
-	    device_mode != QDF_P2P_CLIENT_MODE)
-		return;
 	tdls_soc = (struct tdls_soc_priv_obj *) arg;
 	tdls_post_scan_done_msg(tdls_soc);
 }