From: Lennert Buytenhek Date: Thu, 7 Jan 2010 14:01:42 +0000 (+0100) Subject: mac80211: fix queue selection for packets injected via monitor interface X-Git-Tag: master-2010-01-19~38^2~15 X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=045cfb71a3901005bf6dcedae98cecb3360a0bfc;p=~andy%2Flinux mac80211: fix queue selection for packets injected via monitor interface Commit 'mac80211: fix skb buffering issue' added an ->ndo_select_queue() for monitor interfaces which can end up dereferencing ieee802_1d_to_ac[] beyond the end of the array for injected data packets (as skb->priority isn't guaranteed to be zero or within [0:7]), which then triggers the WARN_ON in net/core/dev.c:dev_cap_txqueue(). Fix this by always setting the priority to zero on injected data frames. Signed-off-by: Lennert Buytenhek Cc: stable@kernel.org Signed-off-by: John W. Linville --- diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index ff762ed34f1..44188ef80a6 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -685,6 +685,7 @@ static u16 ieee80211_monitor_select_queue(struct net_device *dev, return ieee802_1d_to_ac[skb->priority]; } + skb->priority = 0; return ieee80211_downgrade_queue(local, skb); }