Explorar el Código

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
Padma, Santhosh Kumar hace 8 años
padre
commit
8392fb49c6
Se han modificado 1 ficheros con 4 adiciones y 10 borrados
  1. 4 10
      core/hdd/src/wlan_hdd_power.c

+ 4 - 10
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",