]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
alx: fix alx_poll()
authorEric Dumazet <edumazet@google.com>
Sun, 11 Jan 2015 18:32:18 +0000 (10:32 -0800)
committerJiri Slaby <jslaby@suse.cz>
Mon, 26 Jan 2015 13:39:17 +0000 (14:39 +0100)
commitcbac92132ff61018792166045ce2c362cd7f48e0
tree3eaecd773cc19b7e32df3b4c855123993e91f1d9
parentdc5e8861c1ab671c1fd3908d63a03fe5f2f4fb11
alx: fix alx_poll()

[ Upstream commit 7a05dc64e2e4c611d89007b125b20c0d2a4d31a5 ]

Commit d75b1ade567f ("net: less interrupt masking in NAPI") uncovered
wrong alx_poll() behavior.

A NAPI poll() handler is supposed to return exactly the budget when/if
napi_complete() has not been called.

It is also supposed to return number of frames that were received, so
that netdev_budget can have a meaning.

Also, in case of TX pressure, we still have to dequeue received
packets : alx_clean_rx_irq() has to be called even if
alx_clean_tx_irq(alx) returns false, otherwise device is half duplex.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: d75b1ade567f ("net: less interrupt masking in NAPI")
Reported-by: Oded Gabbay <oded.gabbay@amd.com>
Bisected-by: Oded Gabbay <oded.gabbay@amd.com>
Tested-by: Oded Gabbay <oded.gabbay@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/net/ethernet/atheros/alx/main.c