]> git.baikalelectronics.ru Git - kernel.git/commit
s390/qeth: defer RX modesetting
authorJulian Wiedmann <jwi@linux.ibm.com>
Thu, 28 Mar 2019 15:39:19 +0000 (16:39 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 28 Mar 2019 19:57:23 +0000 (12:57 -0700)
commit5b6ee1967609c32b9d587f43b4fd7eb1b6dbe192
treeb4efed99d6e5be3da405da9393226f3155808958
parent841373f46fde3dff9b821f907dbe09dde6b0a923
s390/qeth: defer RX modesetting

.ndo_set_rx_mode gets called in process context, but while holding the
addr_list spinlock. Which means we currently can't sleep while
re-programming the HW, and need to poll for IO completion. That's bad,
in particular since receiving the cmd response can fail silently and
we're then polling until the timeout hits.

As a first step towards eliminating the IO completion polling, run the
RX modeset from a work element and only take the addr_list lock while
updating the RX mode address cache.

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_l2_main.c
drivers/s390/net/qeth_l3_main.c