From a2057d51c36cfc0dab4b1b55b4c580233fd9a152 Mon Sep 17 00:00:00 2001 From: "shemminger@osdl.org" Date: Wed, 30 Nov 2005 11:45:17 -0800 Subject: [PATCH] --- yaml --- r: 15751 b: refs/heads/master c: 0a1225769763779288d759e904c4f5a660844ce4 h: refs/heads/master i: 15749: 4f96d06f0d441972f9e1acdee3adb89653a1aef5 15747: ae43d981cb49e39088e71af642a43151d433d741 15743: 37b913db50c75040d77a3236cd2ec47d85c94ecf v: v3 --- [refs] | 2 +- trunk/drivers/net/sky2.c | 5 +++-- trunk/include/linux/netdevice.h | 8 ++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index aa9967e12383..6ff7902e87f7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a018e3305fe1e500e28830666b1757b75c6b4df5 +refs/heads/master: 0a1225769763779288d759e904c4f5a660844ce4 diff --git a/trunk/drivers/net/sky2.c b/trunk/drivers/net/sky2.c index 2253140ff4dc..f56de9894208 100644 --- a/trunk/drivers/net/sky2.c +++ b/trunk/drivers/net/sky2.c @@ -1961,10 +1961,11 @@ static irqreturn_t sky2_intr(int irq, void *dev_id, struct pt_regs *regs) if (status & Y2_IS_STAT_BMU) { hw->intr_mask &= ~Y2_IS_STAT_BMU; sky2_write32(hw, B0_IMSK, hw->intr_mask); - prefetch(&hw->st_le[hw->st_idx]); - if (netif_rx_schedule_test(dev0)) + if (likely(__netif_rx_schedule_prep(dev0))) { + prefetch(&hw->st_le[hw->st_idx]); __netif_rx_schedule(dev0); + } } if (status & Y2_IS_IRQ_PHY1) diff --git a/trunk/include/linux/netdevice.h b/trunk/include/linux/netdevice.h index 07e114d48bbb..7fda03d338d1 100644 --- a/trunk/include/linux/netdevice.h +++ b/trunk/include/linux/netdevice.h @@ -802,16 +802,16 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits) return (1 << debug_value) - 1; } -/* Schedule rx intr now? */ -static inline int netif_rx_schedule_test(struct net_device *dev) +/* Test if receive needs to be scheduled */ +static inline int __netif_rx_schedule_prep(struct net_device *dev) { return !test_and_set_bit(__LINK_STATE_RX_SCHED, &dev->state); } -/* Schedule only if device is up */ +/* Test if receive needs to be scheduled but only if up */ static inline int netif_rx_schedule_prep(struct net_device *dev) { - return netif_running(dev) && netif_rx_schedule_test(dev); + return netif_running(dev) && __netif_rx_schedule_prep(dev); } /* Add interface to tail of rx poll list. This assumes that _prep has