net-next/hinic: fix a bug in rx data flow
authorXue Chaojing <xuechaojing@huawei.com>
Tue, 20 Nov 2018 05:47:34 +0000 (05:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Nov 2018 18:38:08 +0000 (10:38 -0800)
In rx_alloc_pkts(), there is a loop call of tasklet, which causes
100% cpu utilization, even no packets are being received. This patch
fixes this bug.

Signed-off-by: Xue Chaojing <xuechaojing@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/huawei/hinic/hinic_rx.c

index 93e8f207f6daaec6c69bc73fdb511bdd379aec00..f86f2e69322487a66905c8961f12aa2047f5c2d1 100644 (file)
@@ -229,9 +229,9 @@ skb_out:
                wmb();  /* write all the wqes before update PI */
 
                hinic_rq_update(rxq->rq, prod_idx);
+               tasklet_schedule(&rxq->rx_task);
        }
 
-       tasklet_schedule(&rxq->rx_task);
        return i;
 }