Sfoglia il codice sorgente

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
Dustin Brown 8 anni fa
parent
commit
6126946bbb

+ 2 - 1
core/hdd/inc/wlan_hdd_main.h

@@ -67,6 +67,7 @@
 #include "cdp_txrx_flow_ctrl_legacy.h"
 #include <cdp_txrx_peer_ops.h>
 #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 {

+ 3 - 1
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;
 		}

+ 1 - 1
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,