On Sat, 2009-10-31 at 17:24 +0300, Nikolai ZHUBR wrote: > Saturday, October 31, 2009, 12:34:37 PM, Johannes Berg wrote: > >> > > 4 actually, wasn't there some cases where the header could have an odd > >> > > number of bytes and would require 3 bytes for alignment? > >> > > >> > Hm, is there? I thought they changed the 11s draft to no longer have > >> > that. > >> > >> Well 2 is fine in that case, (I was basing my comment on something said on this mailinglist > >> a long time ago). :) > > > However, it really all depends on the hardware too ... Maybe we should > > put more of the logic into drivers, and have mac80211 only export its > > required headroom? > > > Or maybe we should just not bother with having drivers do the alignment > > any more -- mac80211 does that now and it only does it if necessary > > (i.e. not on powerpc/x86) > > I'm having this issue on mips platform, if it matters. I cannot test > it on x86 yet. > > Now, searching for "extra_tx_headroom" gives me essentially the > following two: > > net/mac80211/main.c: > local->tx_headroom = max_t(unsigned int , local->hw.extra_tx_headroom, > sizeof(struct ieee80211_tx_status_rtap_hdr)); > > drivers/net/wireless/rt*pci.c: > rt2x00dev->hw->extra_tx_headroom = 0; > > So, as a quick-and-dirty fix, should I replace "max_t(..." by "4 + max_t(..." > or "= 0" by "= 4" ? 4 + max ... should work if it's what we think it is. Let us know. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part