Skip to content
  • Alexander Duyck's avatar
    netpoll: Drop budget parameter from NAPI polling call hierarchy · 822d54b9
    Alexander Duyck authored
    
    
    For some reason we were carrying the budget value around between the
    various calls to napi->poll.  If for example one of the drivers called had
    a bug in which it returned a non-zero value for work this could result in
    the budget value becoming negative.
    
    Rather than carry around a value of budget that is 0 or less we can instead
    just loop through and pass 0 to each napi->poll call.  If any driver
    returns a value for work done that is non-zero then we can report that
    driver and continue rather than allowing a bad actor to make the budget
    value negative and pass that negative value to napi->poll.
    
    Note, the only actual change here is that instead of letting budget become
    negative we are keeping it at 0 regardless of the value returned for work
    since it should not be possible for the polling routine to do any actual
    work with a budget of 0.  So if the polling routine returns a non-0 value
    we are just reporting it and continuing with a budget of 0 rather than
    letting that work value be subtracted from the budget of 0.
    
    Signed-off-by: default avatarAlexander Duyck <aduyck@mirantis.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    822d54b9