qcacld-3.0: Do not invoke the kernel registered function from driver
Netdev-ops/cfg80211-ops are registered to the kernel and should be invoked only by the kernel in the context of the user. In this scenario during SSR as part of cfg80211_stop_ap for p2p_go the driver is directly invoking hdd_hostapd_stop(netdev ops) which clears the DEVICE_OPENED flag, which should be done only if the INTERFACE_DOWN is triggered by the kernel. To resolve this directly stop the queues rather than using the netdev ops. Change-Id: I1d9349a2c52fe8de17313bdced494ccd5bc9d641 CRs-Fixed: 1114722
This commit is contained in:

committed by
qcabuildsw

parent
17eab830e9
commit
0dd8c01127
@@ -2101,7 +2101,10 @@ stopbss:
|
||||
/* Stop the pkts from n/w stack as we are going to free all of
|
||||
* the TX WMM queues for all STAID's
|
||||
*/
|
||||
hdd_hostapd_stop(dev);
|
||||
hdd_notice("Disabling queues");
|
||||
wlan_hdd_netif_queue_control(pHostapdAdapter,
|
||||
WLAN_NETIF_TX_DISABLE_N_CARRIER,
|
||||
WLAN_CONTROL_PATH);
|
||||
|
||||
/* reclaim all resources allocated to the BSS */
|
||||
qdf_status = hdd_softap_stop_bss(pHostapdAdapter);
|
||||
@@ -7852,7 +7855,10 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy,
|
||||
wlan_hdd_undo_acs(pAdapter);
|
||||
qdf_mem_zero(&pAdapter->sessionCtx.ap.sapConfig.acs_cfg,
|
||||
sizeof(struct sap_acs_cfg));
|
||||
hdd_hostapd_stop(dev);
|
||||
/* Stop all tx queues */
|
||||
hdd_notice("Disabling queues");
|
||||
wlan_hdd_netif_queue_control(pAdapter, WLAN_NETIF_TX_DISABLE_N_CARRIER,
|
||||
WLAN_CONTROL_PATH);
|
||||
|
||||
old = pAdapter->sessionCtx.ap.beacon;
|
||||
if (!old) {
|
||||
|
Reference in New Issue
Block a user