qcacld-3.0: Pass psoc instead of vdev for teardown links
As part of start_ap or connect_start to teardown active tdls peers hdd_notify_teardown_tdls_links is called with argument vdev. But TDLS might not be enabled on that vdev. With recent changes, osif_priv object is initialized as part of tdls_vdev_init. For the new interface if TDLS is not initialized then osif_priv object will not be found and TDLS peers are not removed. Change-Id: Idcf690bba2766664700a4851d390ee620f2fe73a CRs-Fixed: 2460108
This commit is contained in:

committad av
nshrivas

förälder
8280a15953
incheckning
9bb9c05e83
@@ -1280,32 +1280,30 @@ void tdls_disable_offchan_and_teardown_links(
|
||||
}
|
||||
}
|
||||
|
||||
void tdls_teardown_connections(struct wlan_objmgr_vdev *vdev)
|
||||
void tdls_teardown_connections(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct tdls_osif_indication indication;
|
||||
struct tdls_soc_priv_obj *tdls_soc;
|
||||
struct wlan_objmgr_vdev *tdls_vdev_obj;
|
||||
struct wlan_objmgr_vdev *tdls_vdev;
|
||||
|
||||
if (!vdev) {
|
||||
QDF_ASSERT(0);
|
||||
return;
|
||||
}
|
||||
|
||||
tdls_soc = wlan_vdev_get_tdls_soc_obj(vdev);
|
||||
tdls_soc = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||
if (!tdls_soc)
|
||||
return;
|
||||
|
||||
/* Get the tdls specific vdev and clear the links */
|
||||
tdls_vdev_obj = tdls_get_vdev(tdls_soc->soc, WLAN_TDLS_SB_ID);
|
||||
if (tdls_vdev_obj) {
|
||||
tdls_disable_offchan_and_teardown_links(tdls_vdev_obj);
|
||||
wlan_objmgr_vdev_release_ref(tdls_vdev_obj, WLAN_TDLS_SB_ID);
|
||||
tdls_vdev = tdls_get_vdev(psoc, WLAN_TDLS_SB_ID);
|
||||
if (!tdls_vdev) {
|
||||
tdls_err("Unable get the vdev");
|
||||
return;
|
||||
}
|
||||
tdls_disable_offchan_and_teardown_links(tdls_vdev);
|
||||
|
||||
indication.vdev = vdev;
|
||||
indication.vdev = tdls_vdev;
|
||||
|
||||
if (tdls_soc->tdls_event_cb)
|
||||
tdls_soc->tdls_event_cb(tdls_soc->tdls_evt_cb_data,
|
||||
TDLS_EVENT_TEARDOWN_LINKS_DONE,
|
||||
&indication);
|
||||
wlan_objmgr_vdev_release_ref(tdls_vdev, WLAN_TDLS_SB_ID);
|
||||
}
|
||||
|
@@ -161,11 +161,11 @@ bool tdls_is_vdev_authenticated(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* tdls_teardown_connections() -teardown and delete all the tdls peers
|
||||
* @vdev: vdev oobject
|
||||
* @psoc: psoc object
|
||||
*
|
||||
* Return: true or false
|
||||
*/
|
||||
void tdls_teardown_connections(struct wlan_objmgr_vdev *vdev);
|
||||
void tdls_teardown_connections(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* tdls_disable_offchan_and_teardown_links - Disable offchannel
|
||||
|
Referens i nytt ärende
Block a user