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. > diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c > index b2497b8..270661d 100644 > --- a/drivers/net/wireless/ath/ath9k/recv.c > +++ b/drivers/net/wireless/ath/ath9k/recv.c > @@ -230,11 +230,11 @@ static int ath_rx_edma_init(struct ath_softc *sc, int nbufs) > int error = 0, i; > u32 size; > > - > - common->rx_bufsize = roundup(IEEE80211_MAX_MPDU_LEN + > - ah->caps.rx_status_len, > - min(common->cachelsz, (u16)64)); > - > + size = roundup(IEEE80211_MAX_MPDU_LEN + ah->caps.rx_status_len, > + min(common->cachelsz, (u16)64)); > + common->rx_bufsize = max_t(u32, size, > + SKB_MAX_ORDER(NET_SKB_PAD > + + common->cachelsz, 0)); > ath9k_hw_set_rx_bufsize(ah, common->rx_bufsize - > ah->caps.rx_status_len); > > -- 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