prima: Fix possible crash in STA+SAP concurrency
In STA+SAP concurrency, when stopping sap through iwpriv command
and if at the same time a restart SAP is called because of a
connection on STA interface on different channel, there is a
possibility that net device pointer is cleared in one context and
is accessed in a different context leading to a crash. Changes are
made to fix this.
Change-Id: Iff2b2cf2f30a4249c3d0f106c4fa9c3e827c506a
CRs-Fixed: 768230
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 8919893..efc09f6 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -198,11 +198,13 @@
{
ENTER();
- //Stop all tx queues
- netif_tx_disable(dev);
-
- //Turn OFF carrier state
- netif_carrier_off(dev);
+ if(NULL != dev) {
+ //Stop all tx queues
+ netif_tx_disable(dev);
+
+ //Turn OFF carrier state
+ netif_carrier_off(dev);
+ }
EXIT();
return 0;
@@ -1515,7 +1517,9 @@
/* Get SAP context first
* SAP and P2PGO would not concurrent */
pHostapdAdapter = hdd_get_adapter(hddCtxt, WLAN_HDD_SOFTAP);
- if ((pHostapdAdapter) && (unsafeChannelCount))
+ if ((pHostapdAdapter) &&
+ (test_bit(SOFTAP_BSS_STARTED, &pHostapdAdapter->event_flags)) &&
+ (unsafeChannelCount))
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
"%s : Current operation channel %d",