mac80211: allow configure_filter callback to sleep
Over time, a whole bunch of drivers have come up with their own scheme to delay the configure_filter operation to a workqueue. To be able to simplify things, allow configure_filter to sleep, and add a new prepare_multicast callback that drivers that need the multicast address list implement. This new callback must be atomic, but most drivers either don't care or just calculate a hash which can be done atomically and then uploaded to the hardware non-atomically. A cursory look suggests that at76c50x-usb, ar9170, mwl8k (which is actually very broken now), rt2x00, wl1251, wl1271 and zd1211 should make use of this new capability. Signed-off-by:Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
Showing
- drivers/net/wireless/adm8211.c 28 additions, 14 deletionsdrivers/net/wireless/adm8211.c
- drivers/net/wireless/at76c50x-usb.c 3 additions, 4 deletionsdrivers/net/wireless/at76c50x-usb.c
- drivers/net/wireless/ath/ar9170/main.c 25 additions, 18 deletionsdrivers/net/wireless/ath/ar9170/main.c
- drivers/net/wireless/ath/ath5k/base.c 39 additions, 25 deletionsdrivers/net/wireless/ath/ath5k/base.c
- drivers/net/wireless/ath/ath9k/main.c 1 addition, 2 deletionsdrivers/net/wireless/ath/ath9k/main.c
- drivers/net/wireless/b43/main.c 1 addition, 1 deletiondrivers/net/wireless/b43/main.c
- drivers/net/wireless/b43legacy/main.c 1 addition, 3 deletionsdrivers/net/wireless/b43legacy/main.c
- drivers/net/wireless/iwlwifi/iwl-core.c 1 addition, 1 deletiondrivers/net/wireless/iwlwifi/iwl-core.c
- drivers/net/wireless/iwlwifi/iwl-core.h 1 addition, 2 deletionsdrivers/net/wireless/iwlwifi/iwl-core.h
- drivers/net/wireless/libertas_tf/main.c 25 additions, 12 deletionsdrivers/net/wireless/libertas_tf/main.c
- drivers/net/wireless/mac80211_hwsim.c 1 addition, 3 deletionsdrivers/net/wireless/mac80211_hwsim.c
- drivers/net/wireless/mwl8k.c 27 additions, 7 deletionsdrivers/net/wireless/mwl8k.c
- drivers/net/wireless/p54/main.c 1 addition, 1 deletiondrivers/net/wireless/p54/main.c
- drivers/net/wireless/rt2x00/rt2x00.h 1 addition, 1 deletiondrivers/net/wireless/rt2x00/rt2x00.h
- drivers/net/wireless/rt2x00/rt2x00mac.c 1 addition, 1 deletiondrivers/net/wireless/rt2x00/rt2x00mac.c
- drivers/net/wireless/rtl818x/rtl8180_dev.c 9 additions, 2 deletionsdrivers/net/wireless/rtl818x/rtl8180_dev.c
- drivers/net/wireless/rtl818x/rtl8187_dev.c 9 additions, 2 deletionsdrivers/net/wireless/rtl818x/rtl8187_dev.c
- drivers/net/wireless/wl12xx/wl1251_main.c 1 addition, 3 deletionsdrivers/net/wireless/wl12xx/wl1251_main.c
- drivers/net/wireless/wl12xx/wl1271_main.c 1 addition, 3 deletionsdrivers/net/wireless/wl12xx/wl1271_main.c
- drivers/net/wireless/zd1211rw/zd_mac.c 29 additions, 15 deletionsdrivers/net/wireless/zd1211rw/zd_mac.c
Loading
Please register or sign in to comment