Search Linux Wireless

Re: [PATCH] carl9170: fix frame drop and WARN due to minstrel_ht change

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday 22 February 2013 17:13:44 Felix Fietkau wrote:
> On 2013-02-22 1:30 AM, Christian Lamparter wrote:
> > With "mac80211/minstrel_ht: add support for using CCK rates"
> > minstrel_ht selects legacy CCK rates as viable rates for
> > outgoing frames which might be sent as part of an A-MPDU
> > [IEEE80211_TX_CTL_AMPDU is set].
> > 
> > This behavior triggered the following WARN_ON in the driver:
> >> WARNING: at carl9170/tx.c:995 carl9170_op_tx+0x1dd/0x6fd
> > The driver assumed that the rate control algorithm made a
> > mistake and dropped the frame.
> > 
> > This patch removes the noisy warning altogether and allows
> > said A-MPDU frames with CCK sample and/or fallback rates to
> > be transmitted seamlessly.
> Shouldn't it prevent aggregation of frames with CCK in the fallback rate
> chain? I don't think transmitting an A-MPDU with a CCK rate works.
IEEE80211_TX_CTL_AMPDU is set on a per-frame base and not per-rate
(so strictly speaking for such frames we ought to form aggregates 
even with CCK rates...  Which of course would be - as you said it - 
totally bonkers.

But of course, the code in the patch does the right thing in
this case. It only sets the aggregation bit (for the HW) for
MCS rates.

BTW: doesn't minstrel_ht also select cck rates for sampling.
(i.e.: as the rate[0]/first rate? Is this alright?!)

Regards,
	Christian
--
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


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux