qcacld-3.0: Post data stall event properly during NUD failure

When cfg80211_get_nud_stats is called post data stall
event only if NUD tracking is disabled in host driver.

When NUD failure is honoured in host driver post
data stall event before disconnection.

Change-Id: Ia366e539cb1674354e16c1086255804a244f34d6
CRs-Fixed: 2765557
This commit is contained in:
Karthik Kantamneni
2020-09-04 18:21:00 +05:30
کامیت شده توسط snandini
والد fa28e74a83
کامیت 697d229fd6
2فایلهای تغییر یافته به همراه13 افزوده شده و 0 حذف شده

مشاهده پرونده

@@ -14351,6 +14351,7 @@ static int __wlan_hdd_cfg80211_get_nud_stats(struct wiphy *wiphy,
/* send NUD failure event only when ARP tracking is enabled. */
if (cdp_cfg_get(soc, cfg_dp_enable_data_stall) &&
!hdd_ctx->config->enable_nud_tracking &&
(pkt_type_bitmap & CONNECTIVITY_CHECK_SET_ARP)) {
QDF_TRACE(QDF_MODULE_ID_HDD_DATA, QDF_TRACE_LEVEL_ERROR,
"Data stall due to NUD failure");

مشاهده پرونده

@@ -24,6 +24,7 @@
#include "wlan_hdd_main.h"
#include "wlan_blm_ucfg_api.h"
#include "hdd_dp_cfg.h"
#include <cdp_txrx_misc.h>
void hdd_nud_set_gateway_addr(struct hdd_adapter *adapter,
struct qdf_mac_addr gw_mac_addr)
@@ -317,6 +318,7 @@ static void __hdd_nud_failure_work(struct hdd_adapter *adapter)
struct hdd_context *hdd_ctx;
eConnectionState conn_state;
int status;
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
hdd_enter();
@@ -341,6 +343,16 @@ static void __hdd_nud_failure_work(struct hdd_adapter *adapter)
return;
}
if (soc && cdp_cfg_get(soc, cfg_dp_enable_data_stall)) {
hdd_dp_err("Data stall due to NUD failure");
cdp_post_data_stall_event
(soc,
DATA_STALL_LOG_INDICATOR_HOST_DRIVER,
DATA_STALL_LOG_NUD_FAILURE,
OL_TXRX_PDEV_ID, 0XFF,
DATA_STALL_LOG_RECOVERY_TRIGGER_PDR);
}
if (adapter->device_mode == QDF_STA_MODE &&
hdd_is_roam_after_nud_enabled(hdd_ctx->config)) {
hdd_handle_nud_fail_sta(hdd_ctx, adapter);