浏览代码

[PATCH] chelsio: use __netif_rx_schedule_prep

The chelsio driver can use __netif_rx_schedule_prep instead of it's own
test_and_set inline.  Applies after the previous 4 patches.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Stephen Hemminger 18 年之前
父节点
当前提交
86c27d2755
共有 1 个文件被更改,包括 3 次插入15 次删除
  1. 3 15
      drivers/net/chelsio/sge.c

+ 3 - 15
drivers/net/chelsio/sge.c

@@ -929,18 +929,6 @@ static inline void reclaim_completed_tx(struct sge *sge, struct cmdQ *q)
 # define __netif_rx_complete(dev) netif_rx_complete(dev)
 # define __netif_rx_complete(dev) netif_rx_complete(dev)
 #endif
 #endif
 
 
-/*
- * We cannot use the standard netif_rx_schedule_prep() because we have multiple
- * ports plus the TOE all multiplexing onto a single response queue, therefore
- * accepting new responses cannot depend on the state of any particular port.
- * So define our own equivalent that omits the netif_running() test.
- */
-static inline int napi_schedule_prep(struct net_device *dev)
-{
-	return !test_and_set_bit(__LINK_STATE_RX_SCHED, &dev->state);
-}
-
-
 /**
 /**
  *	sge_rx - process an ingress ethernet packet
  *	sge_rx - process an ingress ethernet packet
  *	@sge: the sge structure
  *	@sge: the sge structure
@@ -1241,10 +1229,10 @@ static irqreturn_t t1_interrupt_napi(int irq, void *data)
 		if (e->GenerationBit == q->genbit) {
 		if (e->GenerationBit == q->genbit) {
 			if (e->DataValid ||
 			if (e->DataValid ||
 			    process_pure_responses(adapter, e)) {
 			    process_pure_responses(adapter, e)) {
-				if (likely(napi_schedule_prep(sge->netdev)))
+				if (likely(__netif_rx_schedule_prep(sge->netdev)))
 					__netif_rx_schedule(sge->netdev);
 					__netif_rx_schedule(sge->netdev);
-				else
-					printk(KERN_CRIT
+				else if (net_ratelimit())
+					printk(KERN_INFO
 					       "NAPI schedule failure!\n");
 					       "NAPI schedule failure!\n");
 			} else
 			} else
 			writel(q->cidx, adapter->regs + A_SG_SLEEPING);
 			writel(q->cidx, adapter->regs + A_SG_SLEEPING);