| From foo@baz Wed Sep 30 05:25:07 CEST 2015 |
| From: Atsushi Nemoto <nemoto@toshiba-tops.co.jp> |
| Date: Wed, 2 Sep 2015 17:49:29 +0900 |
| Subject: net: eth: altera: fix napi poll_list corruption |
| |
| From: Atsushi Nemoto <nemoto@toshiba-tops.co.jp> |
| |
| [ Upstream commit 4548a697e4969d695047cebd6d9af5e2f6cc728e ] |
| |
| tse_poll() calls __napi_complete() with irq enabled. This leads napi |
| poll_list corruption and may stop all napi drivers working. |
| Use napi_complete() instead of __napi_complete(). |
| |
| Signed-off-by: Atsushi Nemoto <nemoto@toshiba-tops.co.jp> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/altera/altera_tse_main.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| --- a/drivers/net/ethernet/altera/altera_tse_main.c |
| +++ b/drivers/net/ethernet/altera/altera_tse_main.c |
| @@ -511,8 +511,7 @@ static int tse_poll(struct napi_struct * |
| |
| if (rxcomplete < budget) { |
| |
| - napi_gro_flush(napi, false); |
| - __napi_complete(napi); |
| + napi_complete(napi); |
| |
| netdev_dbg(priv->dev, |
| "NAPI Complete, did %d packets with budget %d\n", |