Pay attention to the return value of napi_complete(), completing
polling only if it returns true.

Just use napi rather than &channel->napi as the argument passed to
napi_complete().

Signed-off-by: Alex Elder <el...@linaro.org>
---
 drivers/net/ipa/gsi.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index 56a5eb61b20c4..634f514e861e7 100644
--- a/drivers/net/ipa/gsi.c
+++ b/drivers/net/ipa/gsi.c
@@ -1555,10 +1555,8 @@ static int gsi_channel_poll(struct napi_struct *napi, 
int budget)
                gsi_trans_complete(trans);
        }
 
-       if (count < budget) {
-               napi_complete(&channel->napi);
+       if (count < budget && napi_complete(napi))
                gsi_irq_ieob_enable(channel->gsi, channel->evt_ring_id);
-       }
 
        return count;
 }
-- 
2.20.1

Reply via email to