From 6126946bbb38d6bd16cfe5aa7ac8ea4f75a4e794 Mon Sep 17 00:00:00 2001 From: Dustin Brown Date: Mon, 19 Sep 2016 13:25:45 -0700 Subject: qcacld-3.0: Increase the number of MC filters to 32 Currently the max number of MC filters is set to 10, and MC address filtering is not being properly disabled when this maximum is exceeded. Increase the MC filters to 32, and disable MC filtering when the maximum is exceeded. Change-Id: I124b616be726abfe0739ca539d97965161285da9 CRs-Fixed: 1068479 --- core/hdd/inc/wlan_hdd_main.h | 3 ++- core/hdd/src/wlan_hdd_main.c | 4 +++- target/inc/wlan_tgt_def_config.h | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h index 4ac3abbac81f..b8d1524e1c96 100644 --- a/core/hdd/inc/wlan_hdd_main.h +++ b/core/hdd/inc/wlan_hdd_main.h @@ -67,6 +67,7 @@ #include "cdp_txrx_flow_ctrl_legacy.h" #include #include "wlan_hdd_nan_datapath.h" +#include "wlan_tgt_def_config.h" /*--------------------------------------------------------------------------- Preprocessor definitions and constants @@ -803,7 +804,7 @@ typedef struct hdd_scaninfo_s { } hdd_scaninfo_t; -#define WLAN_HDD_MAX_MC_ADDR_LIST 10 +#define WLAN_HDD_MAX_MC_ADDR_LIST CFG_TGT_MAX_MULTICAST_FILTER_ENTRIES #ifdef WLAN_FEATURE_PACKET_FILTERING typedef struct multicast_addr_list { diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 8946bbbc377e..6375349c36ab 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -2265,7 +2265,9 @@ static void __hdd_set_multicast_list(struct net_device *dev) hdd_notice("mc_count : %u", mc_count); if (mc_count > WLAN_HDD_MAX_MC_ADDR_LIST) { - hdd_notice("No free filter available; allow all multicast frames"); + hdd_notice("Exceeded max MC filter addresses (%d). Allowing all MC frames by disabling MC address filtering", + WLAN_HDD_MAX_MC_ADDR_LIST); + wlan_hdd_set_mc_addr_list(adapter, false); adapter->mc_addr_list.mc_cnt = 0; return; } diff --git a/target/inc/wlan_tgt_def_config.h b/target/inc/wlan_tgt_def_config.h index eadc8d599389..40e0e9d843d3 100644 --- a/target/inc/wlan_tgt_def_config.h +++ b/target/inc/wlan_tgt_def_config.h @@ -155,7 +155,7 @@ #define CFG_TGT_DEFAULT_MCAST2UCAST_MODE 2 #endif -#define CFG_TGT_MAX_MULTICAST_FILTER_ENTRIES 16 +#define CFG_TGT_MAX_MULTICAST_FILTER_ENTRIES 32 /* * Specify how much memory the target should allocate for a debug log of * tx PPDU meta-information (how large the PPDU was, when it was sent, -- cgit v1.2.3