diff options
author | Johannes Berg <johannes.berg@intel.com> | 2011-11-16 09:28:55 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-21 16:20:42 -0500 |
commit | 252b86c43225d067468dd182e9ae616ad2532bc8 (patch) | |
tree | d584ef11ebd143960c1890e361a89653fb9812c9 /net/mac80211/util.c | |
parent | 83c76570961573e56a238d84ba18f2581ef1e6b5 (diff) |
mac80211: use skb list for fragments
We are currently linking the skbs by using skb->next
directly. This works, but the preferred way is to use
a struct sk_buff_head instead. That also prepares for
passing that to drivers directly.
While at it I noticed we calculate the duration for
fragments twice -- remove one of them.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r-- | net/mac80211/util.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index 4cf25b0eea74..939bf248ec73 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c | |||
@@ -95,13 +95,13 @@ u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len, | |||
95 | 95 | ||
96 | void ieee80211_tx_set_protected(struct ieee80211_tx_data *tx) | 96 | void ieee80211_tx_set_protected(struct ieee80211_tx_data *tx) |
97 | { | 97 | { |
98 | struct sk_buff *skb = tx->skb; | 98 | struct sk_buff *skb; |
99 | struct ieee80211_hdr *hdr; | 99 | struct ieee80211_hdr *hdr; |
100 | 100 | ||
101 | do { | 101 | skb_queue_walk(&tx->skbs, skb) { |
102 | hdr = (struct ieee80211_hdr *) skb->data; | 102 | hdr = (struct ieee80211_hdr *) skb->data; |
103 | hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_PROTECTED); | 103 | hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_PROTECTED); |
104 | } while ((skb = skb->next)); | 104 | } |
105 | } | 105 | } |
106 | 106 | ||
107 | int ieee80211_frame_duration(struct ieee80211_local *local, size_t len, | 107 | int ieee80211_frame_duration(struct ieee80211_local *local, size_t len, |