2011-11-14 16:57:09

by Johannes Berg

[permalink] [raw]
Subject: [PATCH 1/2] compat-wireless: disable SKB TX status stamping in mac80211

From: Johannes Berg <[email protected]>

Signed-off-by: Johannes Berg <[email protected]>
---

diff --git a/patches/12-mac80211-disable-tx-status.patch b/patches/12-mac80211-disable-tx-status.patch
new file mode 100644
index 0000000..522cb8c
--- /dev/null
+++ b/patches/12-mac80211-disable-tx-status.patch
@@ -0,0 +1,24 @@
+We can't possibly backport the wifi TX status since
+skb_shinfo()->tx_flags used to be a union and there
+is no way to make the & work properly in that case.
+So we need to just ifdef this part out.
+
+
+--- a/net/mac80211/tx.c 2011-11-14 16:46:04.000000000 +0100
++++ b/net/mac80211/tx.c 2011-11-14 17:04:09.000000000 +0100
+@@ -1915,6 +1915,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s
+ goto fail;
+ }
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+ if (unlikely(!multicast && skb->sk &&
+ skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS)) {
+ struct sk_buff *orig_skb = skb;
+@@ -1953,6 +1954,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s
+ skb = orig_skb;
+ }
+ }
++#endif
+
+ /*
+ * If the skb is shared we need to obtain our own copy.




2011-11-14 16:58:40

by Johannes Berg

[permalink] [raw]
Subject: [PATCH 2/2] compat: add skb_complete_wifi_ack & feature flag

This just needs to be empty -- older kernels don't
have the necessary infrastructure for this.

Signed-off-by: Johannes Berg <[email protected]>
---

diff --git a/include/linux/compat-2.6.h b/include/linux/compat-2.6.h
index d933602..c23e94a 100644
--- a/include/linux/compat-2.6.h
+++ b/include/linux/compat-2.6.h
@@ -35,5 +35,6 @@
#include <linux/compat-3.0.h>
#include <linux/compat-3.1.h>
#include <linux/compat-3.2.h>
+#include <linux/compat-3.3.h>

#endif /* LINUX_26_COMPAT_H */
diff --git a/include/linux/compat-3.3.h b/include/linux/compat-3.3.h
new file mode 100644
index 0000000..2e1e6d3
--- /dev/null
+++ b/include/linux/compat-3.3.h
@@ -0,0 +1,20 @@
+#ifndef LINUX_3_3_COMPAT_H
+#define LINUX_3_3_COMPAT_H
+
+#include <linux/version.h>
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
+
+/* include to override NL80211_FEATURE_SK_TX_STATUS */
+#include <linux/nl80211.h>
+
+
+static inline void skb_complete_wifi_ack(struct sk_buff *skb, bool acked)
+{
+ WARN_ON(1);
+}
+#define NL80211_FEATURE_SK_TX_STATUS 0
+
+#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) */
+
+#endif /* LINUX_3_3_COMPAT_H */



2011-11-14 20:39:47

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 1/2] compat-wireless: disable SKB TX status stamping in mac80211

On Mon, Nov 14, 2011 at 8:14 AM, Johannes Berg
<[email protected]> wrote:
> From: Johannes Berg <[email protected]>
>
> Signed-off-by: Johannes Berg <[email protected]>

Applied and pushed, thanks!

Luis

2011-11-14 20:39:22

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 2/2] compat: add skb_complete_wifi_ack & feature flag

On Mon, Nov 14, 2011 at 8:58 AM, Johannes Berg
<[email protected]> wrote:
> This just needs to be empty -- older kernels don't
> have the necessary infrastructure for this.
>
> Signed-off-by: Johannes Berg <[email protected]>

Applied and pushed, thanks!

Luis