Merge "qcacmn: Fix standby link removal fail"

This commit is contained in:
Linux Build Service Account
2023-10-17 17:40:01 -07:00
committed by Gerrit - the friendly Code Review server
2 changed files with 31 additions and 0 deletions

View File

@@ -28,6 +28,7 @@
struct vdev_mlme_obj; struct vdev_mlme_obj;
struct cnx_mgr; struct cnx_mgr;
struct ml_rv_info;
/* Requestor ID for multiple vdev restart */ /* Requestor ID for multiple vdev restart */
#define MULTIPLE_VDEV_RESTART_REQ_ID 0x1234 #define MULTIPLE_VDEV_RESTART_REQ_ID 0x1234
@@ -721,6 +722,8 @@ enum vdev_start_resp_type {
* the first ml reconfig IE * the first ml reconfig IE
* @mlme_vdev_reconfig_timer_complete: callback to process ml reconfing * @mlme_vdev_reconfig_timer_complete: callback to process ml reconfing
* operation * operation
* @mlme_vdev_reconfig_notify_standby: callback to notify to process standby
* link removal
* @mlme_vdev_notify_mlo_sync_wait_entry: * @mlme_vdev_notify_mlo_sync_wait_entry:
*/ */
struct vdev_mlme_ops { struct vdev_mlme_ops {
@@ -806,6 +809,9 @@ struct vdev_mlme_ops {
uint16_t *tbtt_count, uint16_t bcn_int); uint16_t *tbtt_count, uint16_t bcn_int);
void (*mlme_vdev_reconfig_timer_complete)( void (*mlme_vdev_reconfig_timer_complete)(
struct vdev_mlme_obj *vdev_mlme); struct vdev_mlme_obj *vdev_mlme);
QDF_STATUS (*mlme_vdev_reconfig_notify_standby)(
struct vdev_mlme_obj *vdev_mlme,
struct ml_rv_info *reconfig_info);
QDF_STATUS (*mlme_vdev_notify_mlo_sync_wait_entry)( QDF_STATUS (*mlme_vdev_notify_mlo_sync_wait_entry)(
struct vdev_mlme_obj *vdev_mlme); struct vdev_mlme_obj *vdev_mlme);
}; };

View File

@@ -2012,6 +2012,29 @@ QDF_STATUS mlo_sta_handle_csa_standby_link(
qdf_mem_free(params.chan); qdf_mem_free(params.chan);
return status; return status;
} }
static void mlo_sta_handle_link_reconfig_standby_link(
struct wlan_objmgr_vdev *vdev,
struct ml_rv_info *reconfig_info)
{
struct vdev_mlme_obj *vdev_mlme;
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
if (!vdev_mlme)
return;
if (vdev_mlme->ops &&
vdev_mlme->ops->mlme_vdev_reconfig_notify_standby) {
vdev_mlme->ops->mlme_vdev_reconfig_notify_standby(
vdev_mlme,
reconfig_info);
}
}
#else
static void mlo_sta_handle_link_reconfig_standby_link(
struct wlan_objmgr_vdev *vdev,
struct ml_rv_info *reconfig_info)
{
}
#endif #endif
QDF_STATUS mlo_sta_csa_save_params(struct wlan_mlo_dev_context *mlo_dev_ctx, QDF_STATUS mlo_sta_csa_save_params(struct wlan_mlo_dev_context *mlo_dev_ctx,
@@ -2704,6 +2727,8 @@ check_ml_rv:
} }
} }
mlo_sta_handle_link_reconfig_standby_link(vdev, &reconfig_info);
err_release_refs: err_release_refs:
for (i = 0; i < vdev_count; i++) for (i = 0; i < vdev_count; i++)