mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-18 08:35:08 +08:00
[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:
parent
e487647abb
commit
86c27d2755
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user