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));
--
| Thomas Gleixner | Re: Linux 2.6.23-rc9 and a heads-up for the 2.6.24 series.. |
| Karl Meyer | PROBLEM: 2.6.23-rc "NETDEV WATCHDOG: eth0: transmit timed out" |
| Mark Weber | hdparm standby timeout not working for WD raptors? |
| Robin Lee Powell | NFS hang + umount -f: better behaviour requested. |
git: | |
| Adam Roben | Equivalent of `svn switch` for git-svn? |
| Linus Torvalds | Re: On Tabs and Spaces |
| Adam Mercer | git cvsimport error |
| Sam Song | Fwd: [OT] Re: Git via a proxy server? |
| Antti Harri | Re: wine question |
| Paul Pruett | anyone using zoneminder.com on OpenBSD? |
| Josh | Re: removing sendmail |
| Sevan / Venture37 | wpi(4) not working in -CURRENT |
| Bill Day | telnet: Unable to connect to remote host: Network is unreachable |
| Dong Liu | Re: CXterm for LINUX |
| Framstag | ftp-error: bind: Address already in use? |
| Theodore Ts'o | RESULT: comp.os.linux passes: 858: 5 |
| SMDK2410 LCD Framebuffer driver | 5 hours ago | Linux kernel |
| Resetting the bios password for Toshiba Laptop | 5 hours ago | Hardware |
| Problem booting a barebone kernel in VMWare | 8 hours ago | Linux kernel |
| IP layer send packet | 13 hours ago | Linux kernel |
| PID to ELF image full path | 15 hours ago | Linux kernel |
| types of kernel | 1 day ago | Linux kernel |
| magical mounts | 2 days ago | Linux kernel |
| Problem in scim in Fedora 9 | 2 days ago | Linux general |
| The new Western Digital power saving drives | 2 days ago | Hardware |
| Battery Maximizer Software | 3 days ago | Linux kernel |
