From 92af713fa2945bb16dbb4afaa6ec59eaec479419 Mon Sep 17 00:00:00 2001 From: Yun Park Date: Wed, 13 Sep 2017 16:33:35 -0700 Subject: [PATCH] qcacmn: Fix Intra-BSS forwarding issue Extract ast_table manipulation functions from WDS feature flag Change-Id: I029e151f608a6bb60344d817d7b7c75b86ca981b CRs-Fixed: 2110304 --- dp/wifi3.0/dp_main.c | 8 +++++--- dp/wifi3.0/dp_peer.c | 15 --------------- dp/wifi3.0/dp_peer.h | 17 ----------------- 3 files changed, 5 insertions(+), 35 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 0c81a74e6937..f0e5086b3eec 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -1590,8 +1590,6 @@ static void dp_wds_aging_timer_fn(void *soc_hdl) */ static void dp_soc_wds_attach(struct dp_soc *soc) { - qdf_spinlock_create(&soc->ast_lock); - qdf_timer_init(soc->osdev, &soc->wds_aging_timer, dp_wds_aging_timer_fn, (void *)soc, QDF_TIMER_TYPE_WAKE_APPS); @@ -1609,7 +1607,6 @@ static void dp_soc_wds_detach(struct dp_soc *soc) { qdf_timer_stop(&soc->wds_aging_timer); qdf_timer_free(&soc->wds_aging_timer); - qdf_spinlock_destroy(&soc->ast_lock); } #else static void dp_soc_wds_attach(struct dp_soc *soc) @@ -1890,6 +1887,7 @@ static int dp_soc_cmn_setup(struct dp_soc *soc) goto fail1; } + qdf_spinlock_create(&soc->ast_lock); dp_soc_wds_attach(soc); /* Reset the cpu ring map if radio is NSS offloaded */ @@ -2590,6 +2588,7 @@ static void dp_soc_detach_wifi3(void *txrx_soc) wlan_cfg_soc_detach(soc->wlan_cfg_ctx); dp_soc_wds_detach(soc); + qdf_spinlock_destroy(&soc->ast_lock); qdf_mem_free(soc); } @@ -4981,6 +4980,9 @@ static void dp_txrx_path_stats(struct dp_soc *soc) DP_TRACE(FATAL, "intra-bss packets %u msdus ( %u bytes),", pdev->stats.rx.intra_bss.pkts.num, pdev->stats.rx.intra_bss.pkts.bytes); + DP_TRACE(FATAL, "intra-bss fails %u msdus ( %u bytes),", + pdev->stats.rx.intra_bss.fail.num, + pdev->stats.rx.intra_bss.fail.bytes); DP_TRACE(FATAL, "raw packets %u msdus ( %u bytes),", pdev->stats.rx.raw.num, pdev->stats.rx.raw.bytes); diff --git a/dp/wifi3.0/dp_peer.c b/dp/wifi3.0/dp_peer.c index 157933c52870..b5d7cb2b345e 100644 --- a/dp/wifi3.0/dp_peer.c +++ b/dp/wifi3.0/dp_peer.c @@ -190,7 +190,6 @@ void dp_peer_find_hash_add(struct dp_soc *soc, struct dp_peer *peer) qdf_spin_unlock_bh(&soc->peer_ref_mutex); } -#ifdef FEATURE_WDS /* * dp_peer_ast_hash_attach() - Allocate and initialize AST Hash Table * @soc: SoC handle @@ -487,20 +486,6 @@ void dp_peer_del_ast(struct dp_soc *soc, dp_peer_ast_hash_remove(soc, ast_entry); qdf_mem_free(ast_entry); } -#else -static int dp_peer_ast_hash_attach(struct dp_soc *soc) -{ - return 0; -} -static void dp_peer_ast_hash_detach(struct dp_soc *soc) -{ -} -static inline void dp_peer_map_ast(struct dp_soc *soc, struct dp_peer *peer, - uint8_t *mac_addr, uint16_t hw_peer_id, uint8_t vdev_id) -{ -} - -#endif #if ATH_SUPPORT_WRAP static struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc, diff --git a/dp/wifi3.0/dp_peer.h b/dp/wifi3.0/dp_peer.h index fbbba7479489..59c6a4d7397b 100644 --- a/dp/wifi3.0/dp_peer.h +++ b/dp/wifi3.0/dp_peer.h @@ -55,29 +55,12 @@ uint8_t dp_get_peer_mac_addr_frm_id(struct cdp_soc_t *soc_handle, uint16_t peer_id, uint8_t *peer_mac); -#ifdef FEATURE_WDS int dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer, uint8_t *mac_addr, uint8_t is_self); void dp_peer_del_ast(struct dp_soc *soc, struct dp_ast_entry *ast_entry); struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc, uint8_t *ast_mac_addr, int mac_addr_is_aligned); -#else -static inline int dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer, - uint8_t *mac_addr, uint8_t is_self) -{ - return 0; -} -static inline void dp_peer_del_ast(struct dp_soc *soc, - struct dp_ast_entry *ast_entry) -{ -} -static inline struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc, - uint8_t *ast_mac_addr, int mac_addr_is_aligned) -{ - return NULL; -} -#endif /* * dp_get_vdev_from_soc_vdev_id_wifi3() -