diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-11-25 11:46:19 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-12-21 18:38:52 -0500 |
commit | 47846c9b0c10808d9337d2e7d09361f3e0a0a71a (patch) | |
tree | 8e5d0dbf3309b7868fa73a888f9561ffea1580e3 /net/mac80211/ieee80211_i.h | |
parent | abe60632f311d515b082b450504ee24006023951 (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.h | 5 |
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 | ||
141 | struct ieee80211_tx_data { | 141 | struct 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 */ |
941 | int ieee80211_iface_init(void); | ||
942 | void ieee80211_iface_exit(void); | ||
940 | int ieee80211_if_add(struct ieee80211_local *local, const char *name, | 943 | int 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); |