On Thu, Jan 6, 2011 at 6:07 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > Le jeudi 06 janvier 2011 Ã 17:57 -0800, Luis R. Rodriguez a Ãcrit : >> On Thu, Jan 6, 2011 at 5:23 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: >> > Le vendredi 07 janvier 2011 Ã 02:04 +0100, Christian Lamparter a Ãcrit : >> >> On Friday 07 January 2011 01:46:03 greearb@xxxxxxxxxxxxxxx wrote: >> >> > From: Ben Greear <greearb@xxxxxxxxxxxxxxx> >> >> > >> >> > Patch is from Eric Dumazet, as described here: >> >> > https://patchwork.kernel.org/patch/104271/ >> >> > >> >> > Reported-by: Michael Guntsche <mike@xxxxxxxxxxxx> >> >> > Signed-off-by: Eric Dumazet <eric.dumazet@xxxxxxxxx> >> >> > Signed-off-by: Ben Greear <greearb@xxxxxxxxxxxxxxx> >> >> > --- >> >> > >> >> > NOTE: ÂThis needs review by ath9k and/or other informed >> >> > people. >> >> >> >> Does the hardware support vector-i/o for rx (like for instance iwlagn)? >> >> Else, this change would break A-MSDU rx - which is a mandatory feature >> >> (although, not very popular) of 802.11n - >> >> >> >> See for example 802.11n-2009 9.7c: >> >> >> >> "Support for the reception of an A-MSDU, where [...], is mandatory for >> >> an HT STA" >> >> >> >> And 7.1.2 "The maximum frame body size is determined by the maximum >> >> MSDU size (2304 octets) OR the maximum A-MSDU (3839 or 7935 octets, >> >> depending upon the STA's capability), plus any overhead from security >> >> encapsulation. >> > >> > Then, only solution is to mark this broken, and perform a copy of each >> > received frame, to keep a order-1 buffer(s) allocated for hardware. >> >> -ENOTPOSSIBLE -- its an WFA requirement to RX AMSDU. >> >> > Its too easy to have memory allocation failures for high order pages and >> > freeze the card. >> >> Can't we us paged RX skbs, which mac80211 supports now? >> >> See 2f301227a1ede57504694e1f64839839f5737cac and friends. >> > > Maybe you dont understand the point. A fix is needed for stable kernels. > paged RX skbs is probably a bit complex, even if copy/pasted from other > drivers. The only way to accept your patch is to use a debugfs option to disable it, we need AMSDU support enabled by default. > If the hardware needs 8192 bytes (or 16384) buffers to perform its > operation, it should not give them back to linux, because there is no > guarantee it can allocate fresh ones for the next frames. Last I looked at this the issue was not the upper used by the driver but an issue of a roundoff by the kernel that ended up on *some* machines going a higher order. Not all machines use the higher order. I wondered at one point if using ksize() might help here too but again, this is a new API. Not sure how to fix it for older kernels. Luis -- 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