David Miller wrote:
From: Patrick McHardy <kaber@xxxxxxxxx>
Date: Wed, 23 Jul 2008 18:25:48 +0200
We can't fit them into the cb together, I don't see a way to
shrink ieee80211_tx_info.
Maybe one of the wireless folks can suggest something? Is it
really necessary to pass the full struct ieee80211_tx_info
through the qdisc layer, or could the struct be split? It
needs to find a way to co-exist peacefully with qdiscs'
skb->cb usage.
This is another area that got mangled up in the ->select_queue()
conversion of the WME bits, but in another aspect this problem
existed beforehand as well.
Specifically, when RX packets get requeued out to transmit in
the code in net/mac80211/rx.c that resends packets back out the
wireless device by setting a bit in the SKB CB then calling
dev_queue_xmit().
That's completely illegal :-)
It seems its doing even more illegal things that were also
present previously. The ieee80211_master_start_xmit function
expects to get a valid IEEE80211_SKB_CB, which means it
expects it to survive through the entire qdisc layer. I'm
not sure how packets get to the master device from the
subifs though, so I might be wrong.
--
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