diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-09-26 07:34:54 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-09-30 14:07:23 -0400 |
commit | b4a4bf5d77c7d32098a7080f34a8857dd7fa466d (patch) | |
tree | 0788d2aa40d50af27c44fcb88c20d9c7e31d5fbc | |
parent | 093d874c02e8d3091aa38596faf0ff2bfd4f0ceb (diff) |
mac80211: fixups for "make master iface not wireless"
In "mac80211: make master iface not wireless" I accidentally
forgot to include these changes ... leading to the expected
BUG_ON errors.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | net/mac80211/iface.c | 9 | ||||
-rw-r--r-- | net/mac80211/wme.c | 8 |
2 files changed, 8 insertions, 9 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index b5cd91e89712..8336fee68d3e 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
@@ -58,8 +58,9 @@ static inline int identical_mac_addr_allowed(int type1, int type2) | |||
58 | 58 | ||
59 | static int ieee80211_open(struct net_device *dev) | 59 | static int ieee80211_open(struct net_device *dev) |
60 | { | 60 | { |
61 | struct ieee80211_sub_if_data *sdata, *nsdata; | 61 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); |
62 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | 62 | struct ieee80211_sub_if_data *nsdata; |
63 | struct ieee80211_local *local = sdata->local; | ||
63 | struct sta_info *sta; | 64 | struct sta_info *sta; |
64 | struct ieee80211_if_init_conf conf; | 65 | struct ieee80211_if_init_conf conf; |
65 | u32 changed = 0; | 66 | u32 changed = 0; |
@@ -67,8 +68,6 @@ static int ieee80211_open(struct net_device *dev) | |||
67 | bool need_hw_reconfig = 0; | 68 | bool need_hw_reconfig = 0; |
68 | u8 null_addr[ETH_ALEN] = {0}; | 69 | u8 null_addr[ETH_ALEN] = {0}; |
69 | 70 | ||
70 | sdata = IEEE80211_DEV_TO_SUB_IF(dev); | ||
71 | |||
72 | /* fail early if user set an invalid address */ | 71 | /* fail early if user set an invalid address */ |
73 | if (compare_ether_addr(dev->dev_addr, null_addr) && | 72 | if (compare_ether_addr(dev->dev_addr, null_addr) && |
74 | !is_valid_ether_addr(dev->dev_addr)) | 73 | !is_valid_ether_addr(dev->dev_addr)) |
@@ -512,8 +511,8 @@ static int ieee80211_stop(struct net_device *dev) | |||
512 | 511 | ||
513 | static void ieee80211_set_multicast_list(struct net_device *dev) | 512 | static void ieee80211_set_multicast_list(struct net_device *dev) |
514 | { | 513 | { |
515 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | ||
516 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); | 514 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); |
515 | struct ieee80211_local *local = sdata->local; | ||
517 | int allmulti, promisc, sdata_allmulti, sdata_promisc; | 516 | int allmulti, promisc, sdata_allmulti, sdata_promisc; |
518 | 517 | ||
519 | allmulti = !!(dev->flags & IFF_ALLMULTI); | 518 | allmulti = !!(dev->flags & IFF_ALLMULTI); |
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c index c703f8b44e92..139b5f267b34 100644 --- a/net/mac80211/wme.c +++ b/net/mac80211/wme.c | |||
@@ -73,9 +73,8 @@ static int wme_downgrade_ac(struct sk_buff *skb) | |||
73 | 73 | ||
74 | 74 | ||
75 | /* Indicate which queue to use. */ | 75 | /* Indicate which queue to use. */ |
76 | static u16 classify80211(struct sk_buff *skb, struct net_device *dev) | 76 | static u16 classify80211(struct ieee80211_local *local, struct sk_buff *skb) |
77 | { | 77 | { |
78 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | ||
79 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; | 78 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; |
80 | 79 | ||
81 | if (!ieee80211_is_data(hdr->frame_control)) { | 80 | if (!ieee80211_is_data(hdr->frame_control)) { |
@@ -113,14 +112,15 @@ static u16 classify80211(struct sk_buff *skb, struct net_device *dev) | |||
113 | 112 | ||
114 | u16 ieee80211_select_queue(struct net_device *dev, struct sk_buff *skb) | 113 | u16 ieee80211_select_queue(struct net_device *dev, struct sk_buff *skb) |
115 | { | 114 | { |
115 | struct ieee80211_master_priv *mpriv = netdev_priv(dev); | ||
116 | struct ieee80211_local *local = mpriv->local; | ||
116 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; | 117 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; |
117 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | ||
118 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); | 118 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); |
119 | struct sta_info *sta; | 119 | struct sta_info *sta; |
120 | u16 queue; | 120 | u16 queue; |
121 | u8 tid; | 121 | u8 tid; |
122 | 122 | ||
123 | queue = classify80211(skb, dev); | 123 | queue = classify80211(local, skb); |
124 | if (unlikely(queue >= local->hw.queues)) | 124 | if (unlikely(queue >= local->hw.queues)) |
125 | queue = local->hw.queues - 1; | 125 | queue = local->hw.queues - 1; |
126 | 126 | ||