Re: [TIP] BUG kmalloc-4096: Poison overwritten (ath5k_rx_skb_alloc)

From: Nick Kossifidis
Date: Mon Feb 23 2009 - 18:08:20 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/