From 8392fb49c65fdc4aa619fd41fe2fa8ee7191f97b Mon Sep 17 00:00:00 2001 From: "Padma, Santhosh Kumar" Date: Fri, 17 Mar 2017 12:35:27 +0530 Subject: [PATCH] qcacld-3.0: Invoke sme_dhcp_done_ind in all states Currently driver drops RRM request before completion of DHCP. Driver uses global variable dhcp_done to check completion of DHCP. In static IP case, there is a chance that sme_dhcp_done_ind be invoked before connection. Hence there is a chance that global variable dhcp_done may not be set. This can cause driver to drop RRM requests forever in static IP scenarios. Invoke sme_dhcp_done_ind in all states to allow processing of RRM requests in static IP scenarios as well. Change-Id: I20e07eea7a66e7f3336dd783b9533ff642721209 CRs-Fixed: 2021041 --- core/hdd/src/wlan_hdd_power.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c index 19897647e44c..262d07f7377d 100644 --- a/core/hdd/src/wlan_hdd_power.c +++ b/core/hdd/src/wlan_hdd_power.c @@ -222,12 +222,9 @@ static int __wlan_hdd_ipv6_changed(struct notifier_block *nb, if (0 != status) return NOTIFY_DONE; sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); - if (eConnectionState_Associated == - sta_ctx->conn_info.connState) { - hdd_info("invoking sme_dhcp_done_ind"); - sme_dhcp_done_ind(pHddCtx->hHal, + hdd_debug("invoking sme_dhcp_done_ind"); + sme_dhcp_done_ind(pHddCtx->hHal, pAdapter->sessionId); - } schedule_work(&pAdapter->ipv6NotifierWorkQueue); } EXIT(); @@ -756,12 +753,9 @@ static int __wlan_hdd_ipv4_changed(struct notifier_block *nb, return NOTIFY_DONE; sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); - if (eConnectionState_Associated == - sta_ctx->conn_info.connState) { - hdd_info("invoking sme_dhcp_done_ind"); - sme_dhcp_done_ind(pHddCtx->hHal, + hdd_debug("invoking sme_dhcp_done_ind"); + sme_dhcp_done_ind(pHddCtx->hHal, pAdapter->sessionId); - } if (!pHddCtx->config->fhostArpOffload) { hdd_notice("Offload not enabled ARPOffload=%d",