mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-30 21:24:36 +02:00
6d19fadd65
- refactor wds code - add interface for separating individual wds stations from the master interface - add some queueing fixes for packets passing through virtual interfaces git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12003 3c298f89-4303-0410-b956-a3cf2f4a3e73
71 lines
2.3 KiB
Diff
71 lines
2.3 KiB
Diff
--- a/include/compat.h
|
|
+++ b/include/compat.h
|
|
@@ -182,6 +182,13 @@
|
|
#define DEV_ATH CTL_UNNUMBERED
|
|
#endif
|
|
|
|
+/* __skb_append got a third parameter in 2.6.14 */
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14)
|
|
+#define __skb_queue_after(_list, _old, _new) __skb_append(_old, _new)
|
|
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
|
|
+#define __skb_queue_after(_list, _old, _new) __skb_append(_old, _new, _list)
|
|
+#endif
|
|
+
|
|
#endif /* __KERNEL__ */
|
|
|
|
#endif /* _ATH_COMPAT_H_ */
|
|
--- a/net80211/ieee80211_linux.h
|
|
+++ b/net80211/ieee80211_linux.h
|
|
@@ -350,13 +350,6 @@
|
|
#define ACL_LOCK_CHECK(_as)
|
|
#endif
|
|
|
|
-/* __skb_append got a third parameter in 2.6.14 */
|
|
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14)
|
|
-#define __skb_append(a,b,c) __skb_append(a, b)
|
|
-#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
|
|
-#define __skb_append(a,b,c) __skb_queue_after(c, a, b)
|
|
-#endif
|
|
-
|
|
/*
|
|
* Per-node power-save queue definitions. Beware of control
|
|
* flow with IEEE80211_NODE_SAVEQ_LOCK/IEEE80211_NODE_SAVEQ_UNLOCK.
|
|
@@ -400,16 +393,16 @@
|
|
_skb = __skb_dequeue(&(_ni)->ni_savedq); \
|
|
(_qlen) = skb_queue_len(&(_ni)->ni_savedq); \
|
|
} while (0)
|
|
-#define _IEEE80211_NODE_SAVEQ_ENQUEUE(_ni, _skb, _qlen, _age) do {\
|
|
- struct sk_buff *tail = skb_peek_tail(&(_ni)->ni_savedq);\
|
|
- if (tail != NULL) { \
|
|
- _age -= M_AGE_GET(tail); \
|
|
- __skb_append(tail, _skb, &(_ni)->ni_savedq); \
|
|
- } else { \
|
|
- __skb_queue_head(&(_ni)->ni_savedq, _skb); \
|
|
- } \
|
|
- M_AGE_SET(_skb, _age); \
|
|
- (_qlen) = skb_queue_len(&(_ni)->ni_savedq); \
|
|
+#define _IEEE80211_NODE_SAVEQ_ENQUEUE(_ni, _skb, _qlen, _age) do { \
|
|
+ struct sk_buff *tail = skb_peek_tail(&(_ni)->ni_savedq); \
|
|
+ if (tail != NULL) { \
|
|
+ _age -= M_AGE_GET(tail); \
|
|
+ __skb_queue_after(&(_ni)->ni_savedq, tail, _skb); \
|
|
+ } else { \
|
|
+ __skb_queue_head(&(_ni)->ni_savedq, _skb); \
|
|
+ } \
|
|
+ M_AGE_SET(_skb, _age); \
|
|
+ (_qlen) = skb_queue_len(&(_ni)->ni_savedq); \
|
|
} while (0)
|
|
|
|
/*
|
|
--- a/net80211/ieee80211_power.c
|
|
+++ b/net80211/ieee80211_power.c
|
|
@@ -243,7 +243,7 @@
|
|
tail = skb_peek_tail(&ni->ni_savedq);
|
|
if (tail != NULL) {
|
|
age -= M_AGE_GET(tail);
|
|
- __skb_append(tail, skb, &ni->ni_savedq);
|
|
+ __skb_queue_after(&ni->ni_savedq, tail, skb);
|
|
} else
|
|
__skb_queue_head(&ni->ni_savedq, skb);
|
|
M_AGE_SET(skb, age);
|