--- net/mac80211/wme.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) --- wireless-dev.orig/net/mac80211/wme.c 2007-07-19 15:36:15.513857384 +0200 +++ wireless-dev/net/mac80211/wme.c 2007-07-19 15:58:18.113857384 +0200 @@ -166,7 +166,7 @@ static inline int wme_downgrade_ac(struc static inline int classify80211(struct sk_buff *skb, struct Qdisc *qd) { struct ieee80211_local *local = wdev_priv(qd->dev->ieee80211_ptr); - struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(qd->dev); + struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF_NW(qd->dev); struct ieee80211_if_sta *ifsta = &sdata->u.sta; struct ieee80211_tx_packet_data *pkt_data = (struct ieee80211_tx_packet_data *) skb->cb; @@ -175,6 +175,13 @@ static inline int classify80211(struct s int qos, tsid, dir; const int ieee802_1d_to_ac[8] = { 2, 3, 3, 2, 1, 1, 0, 0 }; + printk(KERN_DEBUG "classify80211(%s)\n", qd->dev->name); + if (qd->dev != sdata->local->mdev) + printk(KERN_DEBUG "Congrats. you managed to invoke classify80211 with" + " a non master device.\n" + "Good thing it contains special code even if that doesn't" + " really make sense.\n"); + /* see if frame is data or non data frame */ if (unlikely((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)) { /* management frames go on AC_VO queue, but are sent