wlan: Replace time of the day with jiffies during scan reject
Scan reject changes wrongly used time of the day timestamp for
last_scan_reject_timestamp which leads to device crash
if time is changed for device in between.
Add changes to use jiffies instead of time of the day and
intialize scan_reject_reason and scan_reject_session_id with proper values.
Change-Id: Ic2d331e712c2762eca592a3a643c386d743d3ee7
CRs-Fixed: 1099854
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index f228279..73aba2e 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -13156,10 +13156,10 @@
{
pHddCtx->last_scan_reject_session_id = curr_session_id;
pHddCtx->last_scan_reject_reason = curr_reason;
- pHddCtx->last_scan_reject_timestamp = vos_timer_get_system_time();
+ pHddCtx->last_scan_reject_timestamp = jiffies_to_msecs(jiffies);
}
else {
- if ((vos_timer_get_system_time() -
+ if ((jiffies_to_msecs(jiffies) -
pHddCtx->last_scan_reject_timestamp) >=
SCAN_REJECT_THRESHOLD_TIME)
{
diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c
index 01b8a9d..2849a58 100644
--- a/CORE/HDD/src/wlan_hdd_early_suspend.c
+++ b/CORE/HDD/src/wlan_hdd_early_suspend.c
@@ -2500,8 +2500,8 @@
/* Restart all adapters */
hdd_start_all_adapters(pHddCtx);
- pHddCtx->last_scan_reject_session_id = 0;
- pHddCtx->last_scan_reject_reason = 0xFF;
+ pHddCtx->last_scan_reject_session_id = 0xFF;
+ pHddCtx->last_scan_reject_reason = 0;
pHddCtx->last_scan_reject_timestamp = 0;
pHddCtx->hdd_mcastbcast_filter_set = FALSE;
pHddCtx->btCoexModeSet = FALSE;
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 8ca6281..9207636 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -11520,8 +11520,8 @@
((VosContextType*)(pVosContext))->pHDDContext = (v_VOID_t*)pHddCtx;
pHddCtx->parent_dev = dev;
- pHddCtx->last_scan_reject_session_id = 0;
- pHddCtx->last_scan_reject_reason = 0xFF;
+ pHddCtx->last_scan_reject_session_id = 0xFF;
+ pHddCtx->last_scan_reject_reason = 0;
pHddCtx->last_scan_reject_timestamp = 0;
init_completion(&pHddCtx->full_pwr_comp_var);