In current RTL8139 NIC driver, spin_lock()/spin_unlock() is used
for irq handler. But for netconsole/netpoll, it prefers
spin_lock_irqsave()/spin_unlcok_irqrestore(). So this patch fixed
this problem to improve netconsole/netpoll support.
Signed-off-by: Yang Shi <yang.shi@windriver.com>
---
b/drivers/net/8139too.c | 9 +++++++++
1 file changed, 9 insertions(+)
---
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -2136,8 +2136,13 @@ static irqreturn_t rtl8139_interrupt (in
u16 status, ackstat;
int link_changed = 0; /* avoid bogus "uninit" warning */
int handled = 0;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ unsigned long flags;
+ spin_lock_irqsave (&tp->lock, flags);
+#else
spin_lock (&tp->lock);
+#endif
status = RTL_R16 (IntrStatus);
/* shared irq? */
@@ -2185,7 +2190,11 @@ static irqreturn_t rtl8139_interrupt (in
RTL_W16 (IntrStatus, TxErr);
}
out:
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ spin_unlock_irqrestore (&tp->lock, flags);
+#else
spin_unlock (&tp->lock);
+#endif
DPRINTK ("%s: exiting interrupt, intr_status=%#4.4x.\n",
dev->name, RTL_R16 (IntrStatus));
--
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Hiten Pandya | Re: up? (emacs docbook xml ide) |
| Andy Whitcroft | clam |
| Kamalesh Babulal | Re: 2.6.23-rc6-mm1 |
git: | |
| Stephen Hemminger | Re: iptables very slow after commit 784544739a25c30637397ace5489eeb6e15d7d49 |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
