On Wed, Oct 8, 2008 at 8:42 PM, John W. Linville <linville@xxxxxxxxxxxxx> wrote: > On Tue, Oct 07, 2008 at 03:18:18PM -0400, John W. Linville wrote: >> The vendor-supplied driver treats a USB Tx failure as an un-ACKed frame. >> I don't see why we shouldn't do the same thing -- hopefully this makes >> rate-scaling algorithms behave sanely with the rtl8187 driver. >> >> Thanks to Felix Fietkau <nbd@xxxxxxxxxxx> for suggesting this as an >> option. >> >> Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx> >> --- >> This is currently untested -- anyone with rtl8187 bored enough to try >> it? :-) > > AFAICT, this doesn't actually trigger -- at least, the device can > go into its typical failure mode (no frames ACKed until you force a > lower rate) without ever hitting the "assume ACK not received" clause. > > I'll keep looking at it -- there are a couple of 'secrets' still > buried in the vendor driver (if I can stomach to keep looking at it)... > > John > -- > John W. Linville Linux should be at the core > linville@xxxxxxxxxxxxx of your literate lifestyle. > -- > 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 > Another weird thing: the code above essentially attempts to do this: Wait for an ACK If not TX_CTL_NO_ACK: If acked: Report the packet as acked. Endif If no ACK until timeout: Report packet as unacked Endif Endif This would be better, as it doesn't waste time waiting for an ACK for unacked frames: If not TX_CTL_NO_ACK: Wait for an ACK If acked: Report the packet as acked. Endif If no ACK until timeout: Report packet as unacked Endif Endif Of course, this only works if "Wait for an ACK" actually works. -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) -- 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