]> git.baikalelectronics.ru Git - kernel.git/commit
s390/qeth: integrate RX refill worker with NAPI
authorJulian Wiedmann <jwi@linux.ibm.com>
Thu, 30 Jul 2020 15:01:19 +0000 (17:01 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 31 Jul 2020 23:44:35 +0000 (16:44 -0700)
commitcc50f3850760b9a9cc4e675779e076f544fe2ba9
treed272633be577fc45d1ecd5622389867e6b2382da
parent0bc7d520765947ed3c0ebe02e04144f4611eb897
s390/qeth: integrate RX refill worker with NAPI

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: 27a8eccc0d1c ("qeth: add support for af_iucv HiperSockets transport")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core.h
drivers/s390/net/qeth_core_main.c
drivers/s390/net/qeth_l2_main.c
drivers/s390/net/qeth_l3_main.c