qcacld-3.0: Update max_vdev_count to psoc objmgr
Currently max_intf_count which report from target only update to hdd layer, but there might be a race condition if don't update to objmgr: There are already max_intf_count vdev created, one of the vdev is closing by supplicant, vdev is logically deleted and referenced by other function and waiting for cleaning. The interface count of hdd layer is already decreased to accept opening new adapter, but the vdev_id which derived from objmgr vdev is still occupied so the new vdev have to choose max_intf_count as vdev_id, which makes target assert. Update max_vdev_count to psoc objmgr in hdd_update_tgt_cfg() Change-Id: Ifff0b79cfb4645bb466a22da2d7d07040eee2bd0 CRs-Fixed: 2241098
This commit is contained in:
parent
eb92e54035
commit
0724417fbf
@ -1874,6 +1874,8 @@ void hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
|
||||
}
|
||||
}
|
||||
|
||||
hdd_objmgr_update_tgt_max_vdev_psoc(hdd_ctx, cfg->max_intf_count);
|
||||
|
||||
ret = hdd_green_ap_update_config(hdd_ctx);
|
||||
|
||||
ucfg_ipa_set_dp_handle(hdd_ctx->hdd_psoc,
|
||||
|
@ -116,6 +116,19 @@ int hdd_objmgr_release_and_destroy_psoc(struct hdd_context *hdd_ctx)
|
||||
return qdf_status_to_os_return(status);
|
||||
}
|
||||
|
||||
void hdd_objmgr_update_tgt_max_vdev_psoc(struct hdd_context *hdd_ctx,
|
||||
uint8_t max_vdev)
|
||||
{
|
||||
struct wlan_objmgr_psoc *psoc = hdd_ctx->hdd_psoc;
|
||||
|
||||
if (!psoc) {
|
||||
hdd_err("Psoc NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
wlan_psoc_set_max_vdev_count(psoc, max_vdev);
|
||||
}
|
||||
|
||||
int hdd_objmgr_create_and_store_pdev(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
@ -78,6 +78,17 @@ int hdd_objmgr_create_and_store_psoc(struct hdd_context *hdd_ctx,
|
||||
*/
|
||||
int hdd_objmgr_release_and_destroy_psoc(struct hdd_context *hdd_ctx);
|
||||
|
||||
/**
|
||||
* hdd_objmgr_update_tgt_max_vdev_psoc() - Update target max vdev number
|
||||
* @hdd_ctx: Hdd context
|
||||
*
|
||||
* This API update target max vdev number to psoc object
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void hdd_objmgr_update_tgt_max_vdev_psoc(struct hdd_context *hdd_ctx,
|
||||
uint8_t max_vdev);
|
||||
|
||||
/**
|
||||
* hdd_objmgr_create_and_store_pdev() - Create pdev and store in hdd context
|
||||
* @hdd_ctx: Hdd context
|
||||
|
Loading…
Reference in New Issue
Block a user