|
@@ -311,7 +311,7 @@ static struct sk_buff * hostap_tx_encrypt(struct sk_buff *skb,
|
|
|
local_info_t *local;
|
|
|
struct ieee80211_hdr_4addr *hdr;
|
|
|
u16 fc;
|
|
|
- int hdr_len, res;
|
|
|
+ int prefix_len, postfix_len, hdr_len, res;
|
|
|
|
|
|
iface = netdev_priv(skb->dev);
|
|
|
local = iface->local;
|
|
@@ -337,10 +337,13 @@ static struct sk_buff * hostap_tx_encrypt(struct sk_buff *skb,
|
|
|
if (skb == NULL)
|
|
|
return NULL;
|
|
|
|
|
|
- if ((skb_headroom(skb) < crypt->ops->extra_mpdu_prefix_len ||
|
|
|
- skb_tailroom(skb) < crypt->ops->extra_mpdu_postfix_len) &&
|
|
|
- pskb_expand_head(skb, crypt->ops->extra_mpdu_prefix_len,
|
|
|
- crypt->ops->extra_mpdu_postfix_len, GFP_ATOMIC)) {
|
|
|
+ prefix_len = crypt->ops->extra_mpdu_prefix_len +
|
|
|
+ crypt->ops->extra_msdu_prefix_len;
|
|
|
+ postfix_len = crypt->ops->extra_mpdu_postfix_len +
|
|
|
+ crypt->ops->extra_msdu_postfix_len;
|
|
|
+ if ((skb_headroom(skb) < prefix_len ||
|
|
|
+ skb_tailroom(skb) < postfix_len) &&
|
|
|
+ pskb_expand_head(skb, prefix_len, postfix_len, GFP_ATOMIC)) {
|
|
|
kfree_skb(skb);
|
|
|
return NULL;
|
|
|
}
|