summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnson <jjohnson@codeaurora.org>2016-10-31 13:11:48 -0700
committerqcabuildsw <qcabuildsw@localhost>2016-11-01 18:42:33 -0700
commitced378501a7ef8d307f728599d7094b6cbcf3c90 (patch)
treea2c5ec5cc42bd68d0bb99f50fc4784bfd636c544
parent946cab84ee17f8b4de7ad311946cedaf0cf10920 (diff)
qcacld-3.0: Enhance logging in address change notifiers
Currently an issue is being observed where UMAC is not correctly responding to Link Measurement Request action frames. The logic in UMAC is dependent upon sme_dhcp_done_ind() being called from the HDD address change notifiers. Unfortunately neither HDD nor SME log when this occurs, so it is impossible to tell from the logs whether or not this has occurred. Add appropriate logging to the HDD address change notifiers so that it is clear when sme_dhcp_done_ind() is invoked, and upon which interface. Change-Id: I35f80af382df4ff118bf426d12dc47ef7bbbc080 CRs-Fixed: 1084151
-rw-r--r--core/hdd/src/wlan_hdd_power.c41
1 files changed, 23 insertions, 18 deletions
diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c
index bee6a6f01ba4..4c003fd26030 100644
--- a/core/hdd/src/wlan_hdd_power.c
+++ b/core/hdd/src/wlan_hdd_power.c
@@ -233,29 +233,31 @@ static int __wlan_hdd_ipv6_changed(struct notifier_block *nb,
struct net_device *ndev = ifa->idev->dev;
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(ndev);
hdd_context_t *pHddCtx;
+ hdd_station_ctx_t *sta_ctx;
int status;
- ENTER();
+ ENTER_DEV(ndev);
if ((pAdapter == NULL) || (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)) {
hdd_err("Adapter context is invalid %p", pAdapter);
- return -EINVAL;
+ return NOTIFY_DONE;
}
if ((pAdapter->dev == ndev) &&
- (pAdapter->device_mode == QDF_STA_MODE ||
- pAdapter->device_mode == QDF_P2P_CLIENT_MODE ||
- pAdapter->device_mode == QDF_NDI_MODE)) {
+ (pAdapter->device_mode == QDF_STA_MODE ||
+ pAdapter->device_mode == QDF_P2P_CLIENT_MODE ||
+ pAdapter->device_mode == QDF_NDI_MODE)) {
pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
status = wlan_hdd_validate_context(pHddCtx);
if (0 != status)
return NOTIFY_DONE;
+ sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
if (eConnectionState_Associated ==
- WLAN_HDD_GET_STATION_CTX_PTR(
- pAdapter)->conn_info.connState)
+ sta_ctx->conn_info.connState) {
+ hdd_info("invoking sme_dhcp_done_ind");
sme_dhcp_done_ind(pHddCtx->hHal,
- pAdapter->sessionId);
-
+ pAdapter->sessionId);
+ }
schedule_work(&pAdapter->ipv6NotifierWorkQueue);
}
EXIT();
@@ -751,30 +753,33 @@ static int __wlan_hdd_ipv4_changed(struct notifier_block *nb,
struct net_device *ndev = ifa->ifa_dev->dev;
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(ndev);
hdd_context_t *pHddCtx;
+ hdd_station_ctx_t *sta_ctx;
int status;
- ENTER();
+ ENTER_DEV(ndev);
if ((pAdapter == NULL) || (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)) {
hdd_err("Adapter context is invalid %p", pAdapter);
- return -EINVAL;
+ return NOTIFY_DONE;
}
- if ((pAdapter && pAdapter->dev == ndev) &&
- (pAdapter->device_mode == QDF_STA_MODE ||
- pAdapter->device_mode == QDF_P2P_CLIENT_MODE ||
- pAdapter->device_mode == QDF_NDI_MODE)) {
+ if ((pAdapter->dev == ndev) &&
+ (pAdapter->device_mode == QDF_STA_MODE ||
+ pAdapter->device_mode == QDF_P2P_CLIENT_MODE ||
+ pAdapter->device_mode == QDF_NDI_MODE)) {
pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
status = wlan_hdd_validate_context(pHddCtx);
if (0 != status)
return NOTIFY_DONE;
+ sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
if (eConnectionState_Associated ==
- WLAN_HDD_GET_STATION_CTX_PTR(
- pAdapter)->conn_info.connState)
+ sta_ctx->conn_info.connState) {
+ hdd_info("invoking sme_dhcp_done_ind");
sme_dhcp_done_ind(pHddCtx->hHal,
- pAdapter->sessionId);
+ pAdapter->sessionId);
+ }
if (!pHddCtx->config->fhostArpOffload) {
hdd_notice("Offload not enabled ARPOffload=%d",