]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
can: ti_hecc: Fix napi poll return value for repoll
authorOliver Stäbler <oliver.staebler@bytesatwork.ch>
Mon, 20 Nov 2017 13:45:15 +0000 (14:45 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Sat, 3 Mar 2018 15:50:42 +0000 (15:50 +0000)
commit f6c23b174c3c96616514827407769cbcfc8005cf upstream.

After commit d75b1ade567f ("net: less interrupt masking in NAPI") napi
repoll is done only when work_done == budget.
So we need to return budget if there are still packets to receive.

Signed-off-by: Oliver Stäbler <oliver.staebler@bytesatwork.ch>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/can/ti_hecc.c

index a5eeeb189764b78f408b72da637e45270c595f0d..af3abc6f47bc0a1841c048c29b5fac221ca08581 100644 (file)
@@ -651,6 +651,9 @@ static int ti_hecc_rx_poll(struct napi_struct *napi, int quota)
                mbx_mask = hecc_read(priv, HECC_CANMIM);
                mbx_mask |= HECC_TX_MBOX_MASK;
                hecc_write(priv, HECC_CANMIM, mbx_mask);
+       } else {
+               /* repoll is done only if whole budget is used */
+               num_pkts = quota;
        }
 
        return num_pkts;