Search Linux Wireless

[PATCH 2/3] compat-wireless: use skb_get_queue_mapping() in b43 and b43legacy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Use skb_get_queue_mapping() for getting the queue_mapping member of
skb. Some old kernels do not have the member queue_mapping with all
configuration options, but this function always returns something.

This should also go into compat-wireless-stable-3.3.

Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
---
 patches/48-use_skb_get_queue_mapping.patch |   38 ++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)
 create mode 100644 patches/48-use_skb_get_queue_mapping.patch

diff --git a/patches/48-use_skb_get_queue_mapping.patch b/patches/48-use_skb_get_queue_mapping.patch
new file mode 100644
index 0000000..6f172bd
--- /dev/null
+++ b/patches/48-use_skb_get_queue_mapping.patch
@@ -0,0 +1,38 @@
+Use skb_get_queue_mapping() for getting the queue_mapping member of 
+skb. Some old kernels do not have the member queue_mapping, but this 
+function always returns something.
+
+--- a/drivers/net/wireless/b43/main.c
++++ b/drivers/net/wireless/b43/main.c
+@@ -3430,11 +3430,11 @@ static void b43_op_tx(struct ieee80211_h
+ 	}
+ 	B43_WARN_ON(skb_shinfo(skb)->nr_frags);
+ 
+-	skb_queue_tail(&wl->tx_queue[skb->queue_mapping], skb);
+-	if (!wl->tx_queue_stopped[skb->queue_mapping]) {
++	skb_queue_tail(&wl->tx_queue[skb_get_queue_mapping(skb)], skb);
++	if (!wl->tx_queue_stopped[skb_get_queue_mapping(skb)]) {
+ 		ieee80211_queue_work(wl->hw, &wl->tx_work);
+ 	} else {
+-		ieee80211_stop_queue(wl->hw, skb->queue_mapping);
++		ieee80211_stop_queue(wl->hw, skb_get_queue_mapping(skb));
+ 	}
+ }
+ 
+--- a/drivers/net/wireless/b43legacy/main.c
++++ b/drivers/net/wireless/b43legacy/main.c
+@@ -2493,11 +2493,11 @@ static void b43legacy_op_tx(struct ieee8
+ 	}
+ 	B43legacy_WARN_ON(skb_shinfo(skb)->nr_frags);
+ 
+-	skb_queue_tail(&wl->tx_queue[skb->queue_mapping], skb);
+-	if (!wl->tx_queue_stopped[skb->queue_mapping])
++	skb_queue_tail(&wl->tx_queue[skb_get_queue_mapping(skb)], skb);
++	if (!wl->tx_queue_stopped[skb_get_queue_mapping(skb)])
+ 		ieee80211_queue_work(wl->hw, &wl->tx_work);
+ 	else
+-		ieee80211_stop_queue(wl->hw, skb->queue_mapping);
++		ieee80211_stop_queue(wl->hw, skb_get_queue_mapping(skb));
+ }
+ 
+ static int b43legacy_op_conf_tx(struct ieee80211_hw *hw,
-- 
1.7.5.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux