From 56afad67cb9040b3f45313abafdcd05230099187 Mon Sep 17 00:00:00 2001 From: Wu Gao Date: Mon, 24 Aug 2020 17:00:20 +0800 Subject: [PATCH] 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 --- components/tdls/core/src/wlan_tdls_main.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/components/tdls/core/src/wlan_tdls_main.c b/components/tdls/core/src/wlan_tdls_main.c index 116a2d638756..ee3e8b3caa8d 100644 --- a/components/tdls/core/src/wlan_tdls_main.c +++ b/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); }