Fix for p2p connection failure.
P2P connection was failing because of ASSOC_REJECT, this was because
GO was doing a channel switch due to station scan issued from APPS.
To address this, a timer of 10 sec is started after device starts
beaconing and scan is blocked during this period to avoid channel
switch.
CRs-Fixed: 489322
Change-Id: Id04a177e41fc1377762ef19554151d6985b2fc5a
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index d8a5d9b..12ca67f 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -4872,6 +4872,21 @@
// all scans will be cancelled.
hdd_abort_mac_scan( pHddCtx );
+ //Stop the timer if already running
+ if (VOS_TIMER_STATE_RUNNING ==
+ vos_timer_getCurrentState(&pHddCtx->hdd_p2p_go_conn_is_in_progress))
+ {
+ vos_timer_stop(&pHddCtx->hdd_p2p_go_conn_is_in_progress);
+ }
+
+ // Destroy hdd_p2p_go_conn_is_in_progress timer
+ if (!VOS_IS_STATUS_SUCCESS(vos_timer_destroy(
+ &pHddCtx->hdd_p2p_go_conn_is_in_progress)))
+ {
+ hddLog(VOS_TRACE_LEVEL_ERROR,
+ "%s: Cannot deallocate p2p connection timer", __func__);
+ }
+
//Disable IMPS/BMPS as we do not want the device to enter any power
//save mode during shutdown
sme_DisablePowerSave(pHddCtx->hHal, ePMC_IDLE_MODE_POWER_SAVE);
@@ -5851,10 +5866,16 @@
vos_set_load_unload_in_progress(VOS_MODULE_ID_VOSS, FALSE);
hdd_allow_suspend();
-
+
// Initialize the restart logic
wlan_hdd_restart_init(pHddCtx);
+ if (!VOS_IS_STATUS_SUCCESS( vos_timer_init( &pHddCtx->hdd_p2p_go_conn_is_in_progress,
+ VOS_TIMER_TYPE_SW, wlan_hdd_p2p_go_connection_in_progresscb, pAdapter) ) )
+ {
+ hddLog(VOS_TRACE_LEVEL_ERROR,
+ "%s: vos timer init failed for hdd_p2p_go_conn_is_in_progress", __func__);
+ }
goto success;
err_nl_srv: