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
此提交包含在:
@@ -153,11 +153,11 @@ QDF_STATUS ucfg_tdls_responder(struct tdls_set_responder_req *msg_req);
|
||||
|
||||
/**
|
||||
* ucfg_tdls_teardown_links() - teardown all TDLS links
|
||||
* @vdev: vdev object manager
|
||||
* @psoc: psoc object
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_vdev *vdev);
|
||||
QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_tdls_notify_reset_adapter() - notify reset adapter
|
||||
@@ -278,6 +278,20 @@ QDF_STATUS ucfg_tdls_set_rssi(struct wlan_objmgr_vdev *vdev,
|
||||
* Return: void
|
||||
*/
|
||||
void ucfg_tdls_notify_connect_failure(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_get_tdls_vdev() - Ucfg api to get tdls specific vdev object
|
||||
* @psoc: wlan psoc object manager
|
||||
* @dbg_id: debug id
|
||||
*
|
||||
* If TDLS is enabled on any vdev then return the corresponding vdev.
|
||||
*
|
||||
* This api increases the ref count of the returned vdev.
|
||||
* Return: vdev manager pointer or NULL.
|
||||
*/
|
||||
struct wlan_objmgr_vdev *ucfg_get_tdls_vdev(struct wlan_objmgr_psoc *psoc,
|
||||
wlan_objmgr_ref_dbgid dbg_id);
|
||||
|
||||
#else
|
||||
|
||||
static inline
|
||||
@@ -330,7 +344,7 @@ void ucfg_tdls_update_tx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
|
||||
}
|
||||
|
||||
static inline
|
||||
QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_vdev *vdev)
|
||||
QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -346,5 +360,13 @@ static inline
|
||||
void ucfg_tdls_notify_connect_failure(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
struct wlan_objmgr_vdev *ucfg_get_tdls_vdev(struct wlan_objmgr_psoc *psoc,
|
||||
wlan_objmgr_ref_dbgid dbg_id)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* FEATURE_WLAN_TDLS */
|
||||
#endif
|
||||
|
@@ -764,18 +764,14 @@ QDF_STATUS ucfg_tdls_responder(struct tdls_set_responder_req *req)
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_vdev *vdev)
|
||||
QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
struct scheduler_msg msg = {0, };
|
||||
|
||||
if (!vdev) {
|
||||
tdls_err("vdev is NULL ");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
tdls_debug("Enter ");
|
||||
|
||||
msg.bodyptr = vdev;
|
||||
msg.bodyptr = psoc;
|
||||
msg.callback = tdls_process_cmd;
|
||||
msg.flush_callback = ucfg_tdls_post_msg_flush_cb;
|
||||
msg.type = TDLS_CMD_TEARDOWN_LINKS;
|
||||
@@ -1123,3 +1119,9 @@ void ucfg_tdls_notify_connect_failure(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return tdls_notify_decrement_session(psoc);
|
||||
}
|
||||
|
||||
struct wlan_objmgr_vdev *ucfg_get_tdls_vdev(struct wlan_objmgr_psoc *psoc,
|
||||
wlan_objmgr_ref_dbgid dbg_id)
|
||||
{
|
||||
return tdls_get_vdev(psoc, dbg_id);
|
||||
}
|
||||
|
新增問題並參考
封鎖使用者