qcacld-3.0: Delete second STA wlan ipa interface

Currently second STA wlan ipa interface is not deleted in case
of STA-STA concurrency for second sta disconnection. At the time
of driver recovery first virtual interface is deleted and later
existing ipa interfaces are deleted. This leads to invalid access
of second STA ipa interface net dev at the time of deletion during
driver recovery. Fix this by deleting the interface at the time of
sta disconnect event.

Change-Id: I21e46fe5c6f0b0213d139050acf229cb5ab914eb
CRs-Fixed: 2376897
This commit is contained in:
Sravan Kumar Kairam 2019-01-14 17:13:09 +05:30 committed by nshrivas
parent c073981183
commit 4757819765

View File

@ -1694,9 +1694,16 @@ static QDF_STATUS __wlan_ipa_wlan_evt(qdf_netdev_t net_dev, uint8_t device_mode,
qdf_mutex_acquire(&ipa_ctx->event_lock);
if (!ipa_ctx->sta_connected) {
struct wlan_ipa_iface_context *iface;
qdf_mutex_release(&ipa_ctx->event_lock);
ipa_err("%s: Evt: %d, STA already disconnected",
msg_ex->name, QDF_IPA_MSG_META_MSG_TYPE(&meta));
iface = wlan_ipa_get_iface(ipa_ctx, QDF_STA_MODE);
if (iface && (iface->dev == net_dev))
wlan_ipa_cleanup_iface(iface);
return QDF_STATUS_E_INVAL;
}