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: v4.4.106~105 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a68e3c90dfb169af592849066c43d6e003e61bc4;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: Greg Kroah-Hartman --- diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c index 6749b18294694..4d01d7bc24ef8 100644 --- a/drivers/net/can/ti_hecc.c +++ b/drivers/net/can/ti_hecc.c @@ -652,6 +652,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;