From: Oliver Stäbler Date: Mon, 20 Nov 2017 13:45:15 +0000 (+0100) Subject: can: ti_hecc: Fix napi poll return value for repoll X-Git-Tag: v3.2.100~118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8840cea8786a9a6f51eeb4a7abe9d4d4e07c960d;p=thirdparty%2Fkernel%2Fstable.git can: ti_hecc: Fix napi poll return value for repoll 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 Signed-off-by: Marc Kleine-Budde Signed-off-by: Ben Hutchings --- diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c index a5eeeb189764b..af3abc6f47bc0 100644 --- a/drivers/net/can/ti_hecc.c +++ b/drivers/net/can/ti_hecc.c @@ -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;