aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-10-01 04:55:41 -0400
committerDavid S. Miller <davem@davemloft.net>2008-10-01 04:55:41 -0400
commit788df7322a7543a337c1ea400d38b621346ea78e (patch)
tree30e9ba775a44839726e07f79f2437ec431d1d8e6 /net
parent6e50e8a2136f1a90de251c653226ded447c5c915 (diff)
parent0d5f0316593df606515b17b037a1fd36c4b8bfdf (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/iface.c9
-rw-r--r--net/mac80211/rx.c2
-rw-r--r--net/mac80211/sta_info.h12
-rw-r--r--net/mac80211/wme.c8
4 files changed, 9 insertions, 22 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
59static int ieee80211_open(struct net_device *dev) 59static 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
513static void ieee80211_set_multicast_list(struct net_device *dev) 512static 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/rx.c b/net/mac80211/rx.c
index c489865761bc..77e7b014872b 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1379,7 +1379,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx)
1379 return RX_QUEUED; 1379 return RX_QUEUED;
1380} 1380}
1381 1381
1382static ieee80211_rx_result debug_noinline 1382static ieee80211_rx_result
1383ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) 1383ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
1384{ 1384{
1385 struct ieee80211_hdr *hdr; 1385 struct ieee80211_hdr *hdr;
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index c3f436964621..a6b51862a89d 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -189,7 +189,6 @@ struct sta_ampdu_mlme {
189 * @last_qual: qual of last received frame from this STA 189 * @last_qual: qual of last received frame from this STA
190 * @last_noise: noise of last received frame from this STA 190 * @last_noise: noise of last received frame from this STA
191 * @last_seq_ctrl: last received seq/frag number from this STA (per RX queue) 191 * @last_seq_ctrl: last received seq/frag number from this STA (per RX queue)
192 * @wme_rx_queue: TBD
193 * @tx_filtered_count: TBD 192 * @tx_filtered_count: TBD
194 * @tx_retry_failed: TBD 193 * @tx_retry_failed: TBD
195 * @tx_retry_count: TBD 194 * @tx_retry_count: TBD
@@ -199,7 +198,6 @@ struct sta_ampdu_mlme {
199 * @tx_fragments: number of transmitted MPDUs 198 * @tx_fragments: number of transmitted MPDUs
200 * @last_txrate_idx: Index of the last used transmit rate 199 * @last_txrate_idx: Index of the last used transmit rate
201 * @tid_seq: TBD 200 * @tid_seq: TBD
202 * @wme_tx_queue: TBD
203 * @ampdu_mlme: TBD 201 * @ampdu_mlme: TBD
204 * @timer_to_tid: identity mapping to ID timers 202 * @timer_to_tid: identity mapping to ID timers
205 * @tid_to_tx_q: map tid to tx queue 203 * @tid_to_tx_q: map tid to tx queue
@@ -258,9 +256,6 @@ struct sta_info {
258 int last_qual; 256 int last_qual;
259 int last_noise; 257 int last_noise;
260 __le16 last_seq_ctrl[NUM_RX_DATA_QUEUES]; 258 __le16 last_seq_ctrl[NUM_RX_DATA_QUEUES];
261#ifdef CONFIG_MAC80211_DEBUG_COUNTERS
262 unsigned int wme_rx_queue[NUM_RX_DATA_QUEUES];
263#endif
264 259
265 /* Updated from TX status path only, no locking requirements */ 260 /* Updated from TX status path only, no locking requirements */
266 unsigned long tx_filtered_count; 261 unsigned long tx_filtered_count;
@@ -274,9 +269,6 @@ struct sta_info {
274 unsigned long tx_fragments; 269 unsigned long tx_fragments;
275 unsigned int last_txrate_idx; 270 unsigned int last_txrate_idx;
276 u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]; 271 u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1];
277#ifdef CONFIG_MAC80211_DEBUG_COUNTERS
278 unsigned int wme_tx_queue[NUM_RX_DATA_QUEUES];
279#endif
280 272
281 /* 273 /*
282 * Aggregation information, locked with lock. 274 * Aggregation information, locked with lock.
@@ -307,10 +299,6 @@ struct sta_info {
307 struct dentry *num_ps_buf_frames; 299 struct dentry *num_ps_buf_frames;
308 struct dentry *inactive_ms; 300 struct dentry *inactive_ms;
309 struct dentry *last_seq_ctrl; 301 struct dentry *last_seq_ctrl;
310#ifdef CONFIG_MAC80211_DEBUG_COUNTERS
311 struct dentry *wme_rx_queue;
312 struct dentry *wme_tx_queue;
313#endif
314 struct dentry *agg_status; 302 struct dentry *agg_status;
315 } debugfs; 303 } debugfs;
316#endif 304#endif
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. */
76static u16 classify80211(struct sk_buff *skb, struct net_device *dev) 76static 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
114u16 ieee80211_select_queue(struct net_device *dev, struct sk_buff *skb) 113u16 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