Hi Jeff,
Thanks for the comment. According your suggestion, I added
local_irq_save()/local_irq_restore() in rtl8139_netpoll_controller().
Move the burden to netpoll layer. The following is the modified patch:
Replaced disable_irq()/enable_irq() with
local_irq_save()/local_irq_restore() to improve
netconsole/netpoll support on RTL8139 NIC driver.
Signed-off-by: Yang Shi <yang.shi@windriver.com>
---
b/drivers/net/8139too.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
---
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -2199,9 +2199,11 @@ static irqreturn_t rtl8139_interrupt (in
*/
static void rtl8139_poll_controller(struct net_device *dev)
{
- disable_irq(dev->irq);
+ unsigned long flags;
+
+ local_irq_save(flags);
rtl8139_interrupt(dev->irq, dev);
- enable_irq(dev->irq);
+ local_irq_restore(flags);
}
#endif
Thanks.
Yang
Jeff Garzik 写道: