lkml.org 
[lkml]   [2009]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [TIP] BUG kmalloc-4096: Poison overwritten (ath5k_rx_skb_alloc)
From
2009/2/24 Jiri Slaby <jirislaby@gmail.com>:
> 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


\
 
 \ /
  Last update: 2009-02-24 00:11    [from the cache]
©2003-2011 Jasper Spaans