aboutsummaryrefslogtreecommitdiffstats
path: root/package/madwifi/patches/324-alignment.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/madwifi/patches/324-alignment.patch')
-rw-r--r--package/madwifi/patches/324-alignment.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/package/madwifi/patches/324-alignment.patch b/package/madwifi/patches/324-alignment.patch
new file mode 100644
index 000000000..c01135f3e
--- /dev/null
+++ b/package/madwifi/patches/324-alignment.patch
@@ -0,0 +1,19 @@
+--- a/net80211/ieee80211_input.c
++++ b/net80211/ieee80211_input.c
+@@ -1275,14 +1275,8 @@ ieee80211_decap(struct ieee80211vap *vap
+ 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);
+- if (tskb)
+- ieee80211_skb_copy_noderef(skb, tskb);
+- ieee80211_dev_kfree_skb(&skb);
+- skb = tskb;
++ memmove(skb->data - 2, skb->data, skb->len);
++ skb->data -= 2;
+ }
+ return skb;
+ }