From: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx> Date: Wed, 5 Dec 2018 15:14:23 +0200 > The current bridge multicast code uses a custom rhashtable > implementation which predates the generic rhashtable API. Patch 01 > converts it to use the generic kernel rhashtable which simplifies the > code a lot and removes duplicated functionality. The convert also makes > hash_elasticity obsolete as the generic rhashtable already has such > checks and has a fixed elasticity of RHT_ELASTICITY (16 currently) so we > emit a warning whenever elasticity is set and return RHT_ELASTICITY when > read (patch 03). Patch 02 converts the multicast code to use non-bh RCU > flavor as it was mixing bh and non-bh. Since now we have the generic > rhashtable which autoshrinks we can be more liberal with the default > hash maximum so patch 04 increases it to 4096 and moves it to a define in > br_private.h. > > v3: add non-rcu br_mdb_get variant and use it where we have > multicast_lock, drop special hash_max handling and just set it where > needed and use non-bh RCU consistently (patch 02, new) > v2: send the latest version of the set which handles when IGMP snooping > is not defined, changes are in patch 01 Series applied, thanks Nik.