qcacld-3.0: Reset vdev_to_iface QDF_IPA_STA_DISCONNECT
In __wlan_ipa_wlan_evt, for QDF_IPA_STA_DISCONNECT event, ipa_ctx->vdev_to_iface[session_id] is reset back to WLAN_IPA_MAX_SESSION only when ipa_ctx->sap_num_connected_sta is greater than 0. So, in STA+SAP concurrency case, when no client is connected to SAP, if STA is disconnected, vdev_to_iface is not reset for that particular session id, making it unusable for further events involving IPA iface creation. Fix is to move the code to reset vdev_to_iface outside the check for ipa_ctx->sap_num_connected_sta in QDF_IPA_STA_DISCONNECT scenario, so that vdev_to_iface is reset irrespective of SAP. Change-Id: I06c79b62c540546cf4842f81d235f96b2965661e CRs-Fixed: 2525709
This commit is contained in:

committed by
nshrivas

parent
9071621421
commit
a4dea9069a
@@ -2002,13 +2002,12 @@ static QDF_STATUS __wlan_ipa_wlan_evt(qdf_netdev_t net_dev, uint8_t device_mode,
|
||||
wlan_ipa_uc_offload_enable_disable(ipa_ctx,
|
||||
SIR_STA_RX_DATA_OFFLOAD, session_id, false);
|
||||
qdf_mutex_acquire(&ipa_ctx->event_lock);
|
||||
ipa_ctx->vdev_to_iface[session_id] =
|
||||
WLAN_IPA_MAX_SESSION;
|
||||
ipa_debug("vdev_to_iface[%u]=%u",
|
||||
session_id,
|
||||
ipa_ctx->vdev_to_iface[session_id]);
|
||||
}
|
||||
|
||||
ipa_ctx->vdev_to_iface[session_id] = WLAN_IPA_MAX_SESSION;
|
||||
ipa_debug("vdev_to_iface[%u]=%u", session_id,
|
||||
ipa_ctx->vdev_to_iface[session_id]);
|
||||
|
||||
for (i = 0; i < WLAN_IPA_MAX_IFACE; i++) {
|
||||
iface_ctx = &ipa_ctx->iface_context[i];
|
||||
|
||||
|
Reference in New Issue
Block a user