2009/2/24 Jiri Slaby <jirislaby@xxxxxxxxx>: > On 23.2.2009 23:22, Jiri Slaby wrote: >> >> We should hit (unlikely(ret == -EINPROGRESS)) test >> everytime. > > I get on a AR2413 > XX 000 128c0054 cb980203 > XX 001 00000000 00000000 > XX 000 128c0054 cfb80003 > XX 001 00000000 00000000 > XX 000 00001420 00000001 > ath5k phy5: unsupported jumbo > XX 001 126c001c 80600003 > XX 002 00000000 00000000 > XX 000 127d8079 44ca0003 > XX 001 00000000 00000000 > XX 000 128d8079 54cc0003 > (count, status_0, status_1) > so it means, it sets done flag even for more flag descs and thus we handle > it well in this particular case. > We have to ignore done flag when more flag is set, done flag is only valid when more flag is cleared according to docs. Also check out Sam's version here -> http://svn.freebsd.org/viewvc/base/projects/ath_hal/ar5212/ar5212_recv.c?revision=185406&view=markup He does an extra check... /* * Given the use of a self-linked tail be very sure that the hw is * done with this descriptor; the hw may have done this descriptor * once and picked it up again...make sure the hw has moved on. */ if ((ands->ds_rxstatus1&AR_Done) == 0 && OS_REG_READ(ah, AR_RXDP) == pa) return HAL_EINPROGRESS; -- GPG ID: 0xD21DB2DB As you read this post global entropy rises. Have Fun ;-) Nick -- 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