On Thu, 2008-06-12 at 15:42 +0300, Ron Rindjunsky wrote: > This patch denies the use of framentation while ampdu is used. > > Signed-off-by: Ron Rindjunsky <ron.rindjunsky@xxxxxxxxx> Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > --- > net/mac80211/tx.c | 8 ++++---- > 1 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c > index 1ad9e66..195cb6d 100644 > --- a/net/mac80211/tx.c > +++ b/net/mac80211/tx.c > @@ -660,9 +660,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *tx) > > /* > * Warn when submitting a fragmented A-MPDU frame and drop it. > - * This is an error and needs to be fixed elsewhere, but when > - * done needs to take care of monitor interfaces (injection) > - * etc. > + * This scenario is handled in __ieee80211_tx_prepare but extra > + * caution taken here as fragmented ampdu may cause Tx stop. > */ > if (WARN_ON(tx->flags & IEEE80211_TX_CTL_AMPDU || > skb_get_queue_mapping(tx->skb) >= > @@ -981,7 +980,8 @@ __ieee80211_tx_prepare(struct ieee80211_tx_data *tx, > if (tx->flags & IEEE80211_TX_FRAGMENTED) { > if ((tx->flags & IEEE80211_TX_UNICAST) && > skb->len + FCS_LEN > local->fragmentation_threshold && > - !local->ops->set_frag_threshold) > + !local->ops->set_frag_threshold && > + !(info->flags & IEEE80211_TX_CTL_AMPDU)) > tx->flags |= IEEE80211_TX_FRAGMENTED; > else > tx->flags &= ~IEEE80211_TX_FRAGMENTED;
Attachment:
signature.asc
Description: This is a digitally signed message part