qcacld-3.0: Release WLAN_TDLS_SB_ID when teardown TDLS connection

It doesn't handle failed case about getting vdev or tdls vdev object
when teardown tdls connection. Which causes reference count of psoc
leak.

Change-Id: Ie4e7966c0a07f378483cd5e6344599645c75ac68
CRs-Fixed: 2836949
This commit is contained in:
Wu Gao
2020-12-10 22:04:47 +08:00
کامیت شده توسط snandini
والد 205f43d7a0
کامیت f1d9812ccd

مشاهده پرونده

@@ -1324,18 +1324,20 @@ void tdls_teardown_connections(struct tdls_link_teardown *tdls_teardown)
tdls_vdev = tdls_get_vdev(tdls_teardown->psoc, WLAN_TDLS_SB_ID);
if (!tdls_vdev) {
tdls_err("Unable get the vdev");
return;
goto fail_vdev;
}
tdls_vdev_obj = wlan_vdev_get_tdls_vdev_obj(tdls_vdev);
if (!tdls_vdev_obj) {
tdls_err("vdev priv is NULL");
return;
goto fail_tdls_vdev;
}
tdls_disable_offchan_and_teardown_links(tdls_vdev);
qdf_event_set(&tdls_vdev_obj->tdls_teardown_comp);
fail_tdls_vdev:
wlan_objmgr_vdev_release_ref(tdls_vdev, WLAN_TDLS_SB_ID);
fail_vdev:
wlan_objmgr_psoc_release_ref(tdls_teardown->psoc, WLAN_TDLS_SB_ID);
qdf_mem_free(tdls_teardown);
}