net: eth: altera: fix napi poll_list corruption
authorAtsushi Nemoto <nemoto@toshiba-tops.co.jp>
Wed, 2 Sep 2015 08:49:29 +0000 (17:49 +0900)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Sep 2015 22:35:12 +0000 (15:35 -0700)
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>
drivers/net/ethernet/altera/altera_tse_main.c

index da48e66..8207877 100644 (file)
@@ -511,8 +511,7 @@ static int tse_poll(struct napi_struct *napi, int budget)
 
        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",