[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>
This commit is contained in:
Stephen Hemminger 2006-11-17 17:00:34 -08:00 committed by Jeff Garzik
parent e487647abb
commit 86c27d2755

View File

@ -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 else if (net_ratelimit())
printk(KERN_CRIT 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);