|
@@ -1,5 +1,6 @@
|
|
|
/*
|
|
|
* Copyright (c) 2012-2015, 2020-2021 The Linux Foundation. All rights reserved.
|
|
|
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
*
|
|
|
* Permission to use, copy, modify, and/or distribute this software for any
|
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
@@ -29,6 +30,7 @@
|
|
|
#ifdef CONN_MGR_ADV_FEATURE
|
|
|
#include "wlan_blm_api.h"
|
|
|
#include "wlan_cm_roam_api.h"
|
|
|
+#include "wlan_tdls_api.h"
|
|
|
#endif
|
|
|
#include <wlan_utility.h>
|
|
|
#include <wlan_mlo_mgr_sta.h>
|
|
@@ -978,6 +980,18 @@ static void cm_set_fils_wep_key(struct cnx_mgr *cm_ctx,
|
|
|
cm_set_key(cm_ctx, true, 0, &resp->bssid);
|
|
|
cm_set_key(cm_ctx, false, 0, &broadcast_mac);
|
|
|
}
|
|
|
+
|
|
|
+static void cm_teardown_tdls(struct wlan_objmgr_vdev *vdev)
|
|
|
+{
|
|
|
+ struct wlan_objmgr_psoc *psoc;
|
|
|
+
|
|
|
+ psoc = wlan_vdev_get_psoc(vdev);
|
|
|
+ if (!psoc)
|
|
|
+ return;
|
|
|
+
|
|
|
+ wlan_tdls_teardown_links_sync(psoc);
|
|
|
+}
|
|
|
+
|
|
|
#else
|
|
|
|
|
|
static inline
|
|
@@ -1112,6 +1126,8 @@ post_err:
|
|
|
return qdf_status;
|
|
|
}
|
|
|
|
|
|
+static inline void cm_teardown_tdls(struct wlan_objmgr_vdev *vdev) {}
|
|
|
+
|
|
|
#endif /* CONN_MGR_ADV_FEATURE */
|
|
|
|
|
|
static void cm_connect_prepare_scan_filter(struct wlan_objmgr_pdev *pdev,
|
|
@@ -2319,6 +2335,9 @@ QDF_STATUS cm_connect_start_req(struct wlan_objmgr_vdev *vdev,
|
|
|
|
|
|
cm_set_crypto_params_from_ie(&connect_req->req);
|
|
|
|
|
|
+ if (!wlan_vdev_mlme_is_mlo_link_vdev(vdev))
|
|
|
+ cm_teardown_tdls(vdev);
|
|
|
+
|
|
|
status = cm_sm_deliver_event(vdev, WLAN_CM_SM_EV_CONNECT_REQ,
|
|
|
sizeof(*connect_req), connect_req);
|
|
|
|