aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-11-25 11:46:19 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-12-21 18:38:52 -0500
commit47846c9b0c10808d9337d2e7d09361f3e0a0a71a (patch)
tree8e5d0dbf3309b7868fa73a888f9561ffea1580e3 /net/mac80211/ieee80211_i.h
parentabe60632f311d515b082b450504ee24006023951 (diff)
mac80211: reduce reliance on netdev
For bluetooth 3, we will most likely not have a netdev for a virtual interface (sdata), so prepare for that by reducing the reliance on having a netdev. This patch moves the name and address fields into the sdata struct and uses them from there all over. Some work is needed to keep them sync'ed, but that's not a lot of work and in slow paths anyway. In doing so, this also reduces the number of pointer dereferences in many places, because of things like sdata->dev->dev_addr becoming sdata->vif.addr. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r--net/mac80211/ieee80211_i.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 419f186cfcf0..178e329f9257 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -140,7 +140,6 @@ typedef unsigned __bitwise__ ieee80211_tx_result;
140 140
141struct ieee80211_tx_data { 141struct ieee80211_tx_data {
142 struct sk_buff *skb; 142 struct sk_buff *skb;
143 struct net_device *dev;
144 struct ieee80211_local *local; 143 struct ieee80211_local *local;
145 struct ieee80211_sub_if_data *sdata; 144 struct ieee80211_sub_if_data *sdata;
146 struct sta_info *sta; 145 struct sta_info *sta;
@@ -433,6 +432,8 @@ struct ieee80211_sub_if_data {
433 432
434 int drop_unencrypted; 433 int drop_unencrypted;
435 434
435 char name[IFNAMSIZ];
436
436 /* 437 /*
437 * keep track of whether the HT opmode (stored in 438 * keep track of whether the HT opmode (stored in
438 * vif.bss_info.ht_operation_mode) is valid. 439 * vif.bss_info.ht_operation_mode) is valid.
@@ -937,6 +938,8 @@ void ieee80211_rx_bss_put(struct ieee80211_local *local,
937 struct ieee80211_bss *bss); 938 struct ieee80211_bss *bss);
938 939
939/* interface handling */ 940/* interface handling */
941int ieee80211_iface_init(void);
942void ieee80211_iface_exit(void);
940int ieee80211_if_add(struct ieee80211_local *local, const char *name, 943int ieee80211_if_add(struct ieee80211_local *local, const char *name,
941 struct net_device **new_dev, enum nl80211_iftype type, 944 struct net_device **new_dev, enum nl80211_iftype type,
942 struct vif_params *params); 945 struct vif_params *params);