diff --git a/include/compat.h b/include/compat.h index c1b3d69..d224177 100644 --- a/include/compat.h +++ b/include/compat.h @@ -197,6 +197,13 @@ typedef unsigned long resource_size_t; #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_ */ diff --git a/net80211/ieee80211_linux.h b/net80211/ieee80211_linux.h index 1b3cb89..4fe2096 100644 --- a/net80211/ieee80211_linux.h +++ b/net80211/ieee80211_linux.h @@ -315,13 +315,6 @@ typedef spinlock_t acl_lock_t; #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. @@ -373,16 +366,16 @@ typedef spinlock_t acl_lock_t; _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) /* diff --git a/net80211/ieee80211_power.c b/net80211/ieee80211_power.c index c180df9..25ec3a1 100644 --- a/net80211/ieee80211_power.c +++ b/net80211/ieee80211_power.c @@ -244,7 +244,7 @@ ieee80211_pwrsave(struct sk_buff *skb) 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);