wlan: hdd: enable TX queues only after BSS start in hostapd open

During SSR some instances are observed where softAP xmit function
is called before driver reinit has completed.
During SSR we don't unregister softAP dev ops during
hdd_wlan_shutdown and wait for hdd_wlan_reinit to complete to
finally unregister softAP adapter and then restart driver with
changing interface to softAP.
During shutdown and reinit, there are sequence of calls from
hostapd. hdd_hostapd_open func is also called which directly
enables TX queue.

Therefore preventing enabling TX queues in hdd_hosapd_open
until START_BSS has not completed and clearing START_BSS
bit in event flag during shutdown.

Change-Id: I0d5020479fbbd02b80dcc24cf48349ecfe57f844
CRs-Fixed: 764761
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 8919893..0d88f2e 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -171,8 +171,18 @@
   --------------------------------------------------------------------------*/
 int hdd_hostapd_open (struct net_device *dev)
 {
+   hdd_adapter_t *pAdapter =  WLAN_HDD_GET_PRIV_PTR(dev);
+
    ENTER();
 
+   if(!test_bit(SOFTAP_BSS_STARTED, &pAdapter->event_flags))
+   {
+       //WMM_INIT OR BSS_START not completed
+       hddLog( LOGW, "Ignore hostadp open request");
+       EXIT();
+       return 0;
+   }
+
    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
                     TRACE_CODE_HDD_HOSTAPD_OPEN_REQUEST, NO_SESSION, 0));
    //Turn ON carrier state
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 80bebbc..ab6df87 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -7193,6 +7193,11 @@
           clear_bit(WMM_INIT_DONE, &pAdapter->event_flags);
       }
 
+      if (test_bit(SOFTAP_BSS_STARTED, &pAdapter->event_flags))
+      {
+          clear_bit(SOFTAP_BSS_STARTED, &pAdapter->event_flags);
+      }
+
 #ifdef FEATURE_WLAN_BATCH_SCAN
       if (eHDD_BATCH_SCAN_STATE_STARTED == pAdapter->batchScanState)
       {