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