qcacld-3.0: Add check to find IPA iface_ctx based on vdev_id

IPA APIs currently depend on the net_dev value to distinguish
between the IPA iface_contexts, during setup and cleanup calls.
Due to single net_dev multi vdev change, this check is not
valid anymore and causes overwrite of the IPA iface contexts.
This change adds a check to also compare the vdev_id along with
net_dev to properly distinguish between the iface contexts.

Change-Id: I9cbd827f0d6393a83a9aedb17d68c5f8fe143e05
CRs-Fixed: 3585635
This commit is contained in:
Namita Nair
2023-08-10 10:22:53 -07:00
committed by Rahul Choudhary
부모 a32d78eca4
커밋 0f8629ae12
2개의 변경된 파일9개의 추가작업 그리고 3개의 파일을 삭제

파일 보기

@@ -3124,7 +3124,8 @@ stopbss:
ucfg_ipa_uc_disconnect_ap(hdd_ctx->pdev,
adapter->dev);
ucfg_ipa_cleanup_dev_iface(hdd_ctx->pdev,
adapter->dev);
adapter->dev,
link_info->vdev_id);
}
}

파일 보기

@@ -8896,11 +8896,15 @@ static inline
void hdd_ipa_ap_disconnect_evt(struct hdd_context *hdd_ctx,
struct hdd_adapter *adapter)
{
struct wlan_hdd_link_info *link_info;
link_info = adapter->deflink;
if (ucfg_ipa_is_enabled()) {
ucfg_ipa_uc_disconnect_ap(hdd_ctx->pdev,
adapter->dev);
ucfg_ipa_cleanup_dev_iface(hdd_ctx->pdev,
adapter->dev);
adapter->dev,
link_info->vdev_id);
}
}
@@ -9103,7 +9107,8 @@ hdd_sta_disconnect_and_cleanup(struct wlan_hdd_link_info *link_info)
status = wlan_hdd_cm_issue_disconnect(link_info, reason, true);
if (QDF_IS_STATUS_ERROR(status) && ucfg_ipa_is_enabled()) {
hdd_err("STA disconnect failed");
ucfg_ipa_uc_cleanup_sta(adapter->hdd_ctx->pdev, adapter->dev);
ucfg_ipa_uc_cleanup_sta(adapter->hdd_ctx->pdev, adapter->dev,
link_info->vdev_id);
}
}