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
This commit is contained in:
Padma, Santhosh Kumar 2017-03-17 12:35:27 +05:30 committed by Sandeep Puligilla
parent 0e7cf24c43
commit 8392fb49c6

View File

@ -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",