mac80211: make station hash table max_size configurable
authorJohannes Berg <johannes.berg@intel.com>
Thu, 23 Apr 2015 15:26:06 +0000 (17:26 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 23 Apr 2015 15:26:06 +0000 (17:26 +0200)
Allow debug builds to configure the station hash table maximum
size in order to run with hash collisions in limited scenarios
such as hwsim testing. The default remains 0 which effectively
means no limit.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/Kconfig
net/mac80211/sta_info.c

index 64a012a0c6e52dba4d026701402e56c6e82f73b5..5f698d4ec53b860b18a82b323a629807b50716d5 100644 (file)
@@ -305,3 +305,13 @@ config MAC80211_DEBUG_COUNTERS
          and show them in debugfs.
 
          If unsure, say N.
+
+config MAC80211_STA_HASH_MAX_SIZE
+       int "Station hash table maximum size" if MAC80211_DEBUG_MENU
+       default 0
+       ---help---
+         Setting this option to a low value (e.g. 4) allows testing the
+         hash table with collisions relatively deterministically (just
+         connect more stations than the number selected here.)
+
+         If unsure, leave the default of 0.
index 737730abba6dd2321c67187b08cf21a0a1dc65f5..aec15d746aeae9fa1554f8f530f52eac75176a1a 100644 (file)
@@ -70,6 +70,7 @@ static const struct rhashtable_params sta_rht_params = {
        .key_offset = offsetof(struct sta_info, sta.addr),
        .key_len = ETH_ALEN,
        .hashfn = sta_addr_hash,
+       .max_size = CONFIG_MAC80211_STA_HASH_MAX_SIZE,
 };
 
 /* Caller must hold local->sta_mtx */