| 1 | --- a/net80211/ieee80211_input.c |
| 2 | +++ b/net80211/ieee80211_input.c |
| 3 | @@ -1275,14 +1275,8 @@ ieee80211_decap(struct ieee80211vap *vap |
| 4 | eh->ether_type = ether_type; |
| 5 | |
| 6 | if (!ALIGNED_POINTER(skb->data + sizeof(*eh), u_int32_t)) { |
| 7 | - struct sk_buff *tskb; |
| 8 | - |
| 9 | - /* XXX: does this always work? */ |
| 10 | - tskb = skb_copy(skb, GFP_ATOMIC); |
| 11 | - if (tskb) |
| 12 | - ieee80211_skb_copy_noderef(skb, tskb); |
| 13 | - ieee80211_dev_kfree_skb(&skb); |
| 14 | - skb = tskb; |
| 15 | + memmove(skb->data - 2, skb->data, skb->len); |
| 16 | + skb->data -= 2; |
| 17 | } |
| 18 | return skb; |
| 19 | } |
| 20 | |