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
gecommit door Rahul Choudhary
bovenliggende a32d78eca4
commit 0f8629ae12
2 gewijzigde bestanden met toevoegingen van 9 en 3 verwijderingen

Bestand weergeven

@@ -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);
}
}

Bestand weergeven

@@ -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);
}
}