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    [W:2.982 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site