2008-06-04 21:16:18 +08:00
|
|
|
--- a/net80211/ieee80211_input.c
|
|
|
|
+++ b/net80211/ieee80211_input.c
|
2008-11-02 21:04:36 +08:00
|
|
|
@@ -1275,14 +1275,8 @@ ieee80211_decap(struct ieee80211vap *vap
|
2008-01-29 02:34:06 +08:00
|
|
|
eh->ether_type = ether_type;
|
|
|
|
|
|
|
|
if (!ALIGNED_POINTER(skb->data + sizeof(*eh), u_int32_t)) {
|
|
|
|
- struct sk_buff *tskb;
|
|
|
|
-
|
|
|
|
- /* XXX: does this always work? */
|
|
|
|
- tskb = skb_copy(skb, GFP_ATOMIC);
|
2008-01-31 12:09:54 +08:00
|
|
|
- if (tskb)
|
|
|
|
- ieee80211_skb_copy_noderef(skb, tskb);
|
2008-01-29 02:34:06 +08:00
|
|
|
- ieee80211_dev_kfree_skb(&skb);
|
|
|
|
- skb = tskb;
|
|
|
|
+ memmove(skb->data - 2, skb->data, skb->len);
|
|
|
|
+ skb->data -= 2;
|
|
|
|
}
|
|
|
|
return skb;
|
|
|
|
}
|