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:

committed by
snandini

parent
fa28e74a83
commit
697d229fd6
@@ -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. */
|
/* send NUD failure event only when ARP tracking is enabled. */
|
||||||
if (cdp_cfg_get(soc, cfg_dp_enable_data_stall) &&
|
if (cdp_cfg_get(soc, cfg_dp_enable_data_stall) &&
|
||||||
|
!hdd_ctx->config->enable_nud_tracking &&
|
||||||
(pkt_type_bitmap & CONNECTIVITY_CHECK_SET_ARP)) {
|
(pkt_type_bitmap & CONNECTIVITY_CHECK_SET_ARP)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_HDD_DATA, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_HDD_DATA, QDF_TRACE_LEVEL_ERROR,
|
||||||
"Data stall due to NUD failure");
|
"Data stall due to NUD failure");
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
#include "wlan_hdd_main.h"
|
#include "wlan_hdd_main.h"
|
||||||
#include "wlan_blm_ucfg_api.h"
|
#include "wlan_blm_ucfg_api.h"
|
||||||
#include "hdd_dp_cfg.h"
|
#include "hdd_dp_cfg.h"
|
||||||
|
#include <cdp_txrx_misc.h>
|
||||||
|
|
||||||
void hdd_nud_set_gateway_addr(struct hdd_adapter *adapter,
|
void hdd_nud_set_gateway_addr(struct hdd_adapter *adapter,
|
||||||
struct qdf_mac_addr gw_mac_addr)
|
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;
|
struct hdd_context *hdd_ctx;
|
||||||
eConnectionState conn_state;
|
eConnectionState conn_state;
|
||||||
int status;
|
int status;
|
||||||
|
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||||
|
|
||||||
hdd_enter();
|
hdd_enter();
|
||||||
|
|
||||||
@@ -341,6 +343,16 @@ static void __hdd_nud_failure_work(struct hdd_adapter *adapter)
|
|||||||
return;
|
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 &&
|
if (adapter->device_mode == QDF_STA_MODE &&
|
||||||
hdd_is_roam_after_nud_enabled(hdd_ctx->config)) {
|
hdd_is_roam_after_nud_enabled(hdd_ctx->config)) {
|
||||||
hdd_handle_nud_fail_sta(hdd_ctx, adapter);
|
hdd_handle_nud_fail_sta(hdd_ctx, adapter);
|
||||||
|
Reference in New Issue
Block a user