浏览代码

cxgb - fix NAPI

netif_rx_complete() should be called only
when work_done < budget.

Signed-off-by: Divy Le ray <divy@chelsio.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Divy Le Ray 17 年之前
父节点
当前提交
445cf803ca
共有 1 个文件被更改,包括 2 次插入4 次删除
  1. 2 4
      drivers/net/chelsio/sge.c

+ 2 - 4
drivers/net/chelsio/sge.c

@@ -1625,11 +1625,9 @@ int t1_poll(struct napi_struct *napi, int budget)
 {
 {
 	struct adapter *adapter = container_of(napi, struct adapter, napi);
 	struct adapter *adapter = container_of(napi, struct adapter, napi);
 	struct net_device *dev = adapter->port[0].dev;
 	struct net_device *dev = adapter->port[0].dev;
-	int work_done;
-
-	work_done = process_responses(adapter, budget);
+	int work_done = process_responses(adapter, budget);
 
 
-	if (likely(!responses_pending(adapter))) {
+	if (likely(work_done < budget)) {
 		netif_rx_complete(dev, napi);
 		netif_rx_complete(dev, napi);
 		writel(adapter->sge->respQ.cidx,
 		writel(adapter->sge->respQ.cidx,
 		       adapter->regs + A_SG_SLEEPING);
 		       adapter->regs + A_SG_SLEEPING);