lkml.org 
[lkml]   [2007]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 6/7] [NETDEV]: tehuti Fix possible causing oops of net_rx_action
    2007/12/12, Stephen Hemminger <shemminger@linux-foundation.org>:
    > On Wed, 12 Dec 2007 13:01:27 +0900
    > "Joonwoo Park" <joonwpark81@gmail.com> wrote:
    >
    > > [NETDEV]: tehuti Fix possible causing oops of net_rx_action
    > >
    > > Signed-off-by: Joonwoo Park <joonwpark81@gmail.com>
    > > ---
    > > drivers/net/tehuti.c | 2 ++
    > > 1 files changed, 2 insertions(+), 0 deletions(-)
    > >
    > > diff --git a/drivers/net/tehuti.c b/drivers/net/tehuti.c
    > > index 21230c9..955e749 100644
    > > --- a/drivers/net/tehuti.c
    > > +++ b/drivers/net/tehuti.c
    > > @@ -305,6 +305,8 @@ static int bdx_poll(struct napi_struct *napi, int budget)
    > >
    > > netif_rx_complete(dev, napi);
    > > bdx_enable_interrupts(priv);
    > > + if (unlikely(work_done == napi->weight))
    > > + return work_done - 1;
    > > }
    > > return work_done;
    > > }
    >
    > A better fix would be not going over budget in the first place.
    >
    > --
    > Stephen Hemminger <shemminger@linux-foundation.org>
    >

    Stephen,
    This is code of bd_poll().
    Do you mean remove napi_stop stuff?

    static int bdx_poll(struct napi_struct *napi, int budget)
    {
    ...
    work_done = bdx_rx_receive(priv, &priv->rxd_fifo0, budget);
    if ((work_done < budget) ||
    (priv->napi_stop++ >= 30)) {
    DBG("rx poll is done. backing to isr-driven\n");

    /* from time to time we exit to let NAPI layer release
    * device lock and allow waiting tasks (eg rmmod) to advance) */
    priv->napi_stop = 0;

    netif_rx_complete(dev, napi);
    bdx_enable_interrupts(priv);
    if (unlikely(work_done == napi->weight))
    return work_done - 1;
    }
    return work_done;
    }

    Thanks,
    Joonwoo


    \
     
     \ /
      Last update: 2007-12-12 06:51    [W:0.026 / U:31.668 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site