• Julian Wiedmann's avatar
    s390/qeth: integrate RX refill worker with NAPI · 7c94a882
    Julian Wiedmann authored
    Running a RX refill outside of NAPI context is inherently racy, even
    though the worker is only started for an entirely idle RX ring.
    >From the moment that the worker has replenished parts of the RX ring,
    the HW can use those RX buffers, raise an IRQ and cause our NAPI code to
    run concurrently to the RX refill worker.
    
    Instead let the worker schedule our NAPI instance, and refill the RX
    ring from there. Keeping accurate count of how many buffers still need
    to be refilled also removes some quirky arithmetic from the low-level
    code.
    
    Fixes: b3332930 ("qeth: add support for af_iucv HiperSockets transport")
    Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7c94a882
qeth_core.h 29.2 KB