diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-05-29 12:38:53 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-06-03 23:00:14 +0400 |
commit | 23c0752a25d73ccc4547700e8a57d5ae2f2edf56 (patch) | |
tree | 225631645bf52c07931adc7aeb766344b05be7eb /net/mac80211/wep.c | |
parent | f622360bce6facb05fdce4bce5ee4beb2432222d (diff) | |
download | linux-23c0752a25d73ccc4547700e8a57d5ae2f2edf56.tar.xz |
mac80211: clean up skb reallocation code
This cleans up the skb reallocation code to avoid problems with
skb->truesize, not resize an skb twice for a single output path
because we didn't expand it enough during the first copy and also
removes the code to further expand it during crypto operations
which will no longer be necessary.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/wep.c')
-rw-r--r-- | net/mac80211/wep.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/net/mac80211/wep.c b/net/mac80211/wep.c index 1e7f03dd8f6b..c9fd1291b19d 100644 --- a/net/mac80211/wep.c +++ b/net/mac80211/wep.c @@ -93,13 +93,9 @@ static u8 *ieee80211_wep_add_iv(struct ieee80211_local *local, fc |= IEEE80211_FCTL_PROTECTED; hdr->frame_control = cpu_to_le16(fc); - if ((skb_headroom(skb) < WEP_IV_LEN || - skb_tailroom(skb) < WEP_ICV_LEN)) { - I802_DEBUG_INC(local->tx_expand_skb_head); - if (unlikely(pskb_expand_head(skb, WEP_IV_LEN, WEP_ICV_LEN, - GFP_ATOMIC))) - return NULL; - } + if (WARN_ON(skb_tailroom(skb) < WEP_ICV_LEN || + skb_headroom(skb) < WEP_IV_LEN)) + return NULL; hdrlen = ieee80211_get_hdrlen(fc); newhdr = skb_push(skb, WEP_IV_LEN); |