| 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 |
| @@ -3456,11 +3456,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 |
| @@ -2529,11 +2529,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, |