aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-12-03 07:21:36 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-12-03 07:21:55 -0500
commit18cfd3bfc904e2360af3a1c059c84b3f1944afb4 (patch)
tree1a46029642ddab79a64f659e7e03dad2d8ac86db
parentddcc347b70f298f9d624cd0e250581d831d915fb (diff)
Revert "mac80211: add driver callback for per-interface multicast filter"
This reverts commit 488b366a452934141959384c7a1b52b22d6154ef. The code isn't used by anyone, and the Intel driver isn't planning to use it either right now. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--include/net/mac80211.h7
-rw-r--r--net/mac80211/driver-ops.h16
-rw-r--r--net/mac80211/iface.c11
-rw-r--r--net/mac80211/trace.h24
4 files changed, 0 insertions, 58 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 3cd408b326de..73d99bc3e636 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2398,9 +2398,6 @@ enum ieee80211_roc_type {
2398 * See the section "Frame filtering" for more information. 2398 * See the section "Frame filtering" for more information.
2399 * This callback must be implemented and can sleep. 2399 * This callback must be implemented and can sleep.
2400 * 2400 *
2401 * @set_multicast_list: Configure the device's interface specific RX multicast
2402 * filter. This callback is optional. This callback must be atomic.
2403 *
2404 * @set_tim: Set TIM bit. mac80211 calls this function when a TIM bit 2401 * @set_tim: Set TIM bit. mac80211 calls this function when a TIM bit
2405 * must be set or cleared for a given STA. Must be atomic. 2402 * must be set or cleared for a given STA. Must be atomic.
2406 * 2403 *
@@ -2764,10 +2761,6 @@ struct ieee80211_ops {
2764 unsigned int changed_flags, 2761 unsigned int changed_flags,
2765 unsigned int *total_flags, 2762 unsigned int *total_flags,
2766 u64 multicast); 2763 u64 multicast);
2767 void (*set_multicast_list)(struct ieee80211_hw *hw,
2768 struct ieee80211_vif *vif, bool allmulti,
2769 struct netdev_hw_addr_list *mc_list);
2770
2771 int (*set_tim)(struct ieee80211_hw *hw, struct ieee80211_sta *sta, 2764 int (*set_tim)(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
2772 bool set); 2765 bool set);
2773 int (*set_key)(struct ieee80211_hw *hw, enum set_key_cmd cmd, 2766 int (*set_key)(struct ieee80211_hw *hw, enum set_key_cmd cmd,
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index 5d03c47c0a4c..f98059a45aa5 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -242,22 +242,6 @@ static inline u64 drv_prepare_multicast(struct ieee80211_local *local,
242 return ret; 242 return ret;
243} 243}
244 244
245static inline void drv_set_multicast_list(struct ieee80211_local *local,
246 struct ieee80211_sub_if_data *sdata,
247 struct netdev_hw_addr_list *mc_list)
248{
249 bool allmulti = sdata->flags & IEEE80211_SDATA_ALLMULTI;
250
251 trace_drv_set_multicast_list(local, sdata, mc_list->count);
252
253 check_sdata_in_driver(sdata);
254
255 if (local->ops->set_multicast_list)
256 local->ops->set_multicast_list(&local->hw, &sdata->vif,
257 allmulti, mc_list);
258 trace_drv_return_void(local);
259}
260
261static inline void drv_configure_filter(struct ieee80211_local *local, 245static inline void drv_configure_filter(struct ieee80211_local *local,
262 unsigned int changed_flags, 246 unsigned int changed_flags,
263 unsigned int *total_flags, 247 unsigned int *total_flags,
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index d226751ba63a..3e5c89a295b9 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1018,17 +1018,6 @@ static void ieee80211_set_multicast_list(struct net_device *dev)
1018 atomic_dec(&local->iff_promiscs); 1018 atomic_dec(&local->iff_promiscs);
1019 sdata->flags ^= IEEE80211_SDATA_PROMISC; 1019 sdata->flags ^= IEEE80211_SDATA_PROMISC;
1020 } 1020 }
1021
1022 /*
1023 * TODO: If somebody needs this on AP interfaces,
1024 * it can be enabled easily but multicast
1025 * addresses from VLANs need to be synced.
1026 */
1027 if (sdata->vif.type != NL80211_IFTYPE_MONITOR &&
1028 sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
1029 sdata->vif.type != NL80211_IFTYPE_AP)
1030 drv_set_multicast_list(local, sdata, &dev->mc);
1031
1032 spin_lock_bh(&local->filter_lock); 1021 spin_lock_bh(&local->filter_lock);
1033 __hw_addr_sync(&local->mc_list, &dev->mc, dev->addr_len); 1022 __hw_addr_sync(&local->mc_list, &dev->mc, dev->addr_len);
1034 spin_unlock_bh(&local->filter_lock); 1023 spin_unlock_bh(&local->filter_lock);
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
index 8db560190ca6..9d213e82326e 100644
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -443,30 +443,6 @@ TRACE_EVENT(drv_prepare_multicast,
443 ) 443 )
444); 444);
445 445
446TRACE_EVENT(drv_set_multicast_list,
447 TP_PROTO(struct ieee80211_local *local,
448 struct ieee80211_sub_if_data *sdata, int mc_count),
449
450 TP_ARGS(local, sdata, mc_count),
451
452 TP_STRUCT__entry(
453 LOCAL_ENTRY
454 __field(bool, allmulti)
455 __field(int, mc_count)
456 ),
457
458 TP_fast_assign(
459 LOCAL_ASSIGN;
460 __entry->allmulti = sdata->flags & IEEE80211_SDATA_ALLMULTI;
461 __entry->mc_count = mc_count;
462 ),
463
464 TP_printk(
465 LOCAL_PR_FMT " configure mc filter, count=%d, allmulti=%d",
466 LOCAL_PR_ARG, __entry->mc_count, __entry->allmulti
467 )
468);
469
470TRACE_EVENT(drv_configure_filter, 446TRACE_EVENT(drv_configure_filter,
471 TP_PROTO(struct ieee80211_local *local, 447 TP_PROTO(struct ieee80211_local *local,
472 unsigned int changed_flags, 448 unsigned int changed_flags,