|
From: Renzo D. <re...@cs...> - 2009-03-11 20:22:31
|
User-Mode Linux 2.6.29-rc* gives a lot of warnings during the boot:
IRQ 2/console: IRQF_DISABLED is not guaranteed on shared IRQs
IRQ 3/console-write: IRQF_DISABLED is not guaranteed on shared IRQs
IRQ 5/eth0: IRQF_DISABLED is not guaranteed on shared IRQs
IRQ 6/ssl: IRQF_DISABLED is not guaranteed on shared IRQs
IRQ 7/ssl-write: IRQF_DISABLED is not guaranteed on shared IRQs
IRQ 10/winch: IRQF_DISABLED is not guaranteed on shared IRQs
...
In fact there is a warning in kernel/irq/manage.c:682.
if ((irqflags & (IRQF_SHARED|IRQF_DISABLED))
== (IRQF_SHARED|IRQF_DISABLED))
pr_warning("IRQ %d/%s: IRQF_DISABLED is not "
"guaranteed on shared IRQs\n",
irq, devname);
Jeff,
It is necessary to have IRQF_DISABLED for shared IRQs?
Can IRQF_DISABLED be switched off for all shared IRQ?
Given that the masking policy is not guaranteed already, nothing
should change, if it works it should continue to work.
VDE networking does not work on 2.6.29-rc*.
The patch here attached seems to fix the problem.
Is it correct to switch off the IRQF_DISABLED flag for networking IRQ?
renzo
-----
--- arch/um/drivers/net_kern.c.orig 2009-03-11 21:16:36.000000000 +0100
+++ arch/um/drivers/net_kern.c 2009-03-11 21:16:46.000000000 +0100
@@ -165,7 +165,7 @@
}
err = um_request_irq(dev->irq, lp->fd, IRQ_READ, uml_net_interrupt,
- IRQF_DISABLED | IRQF_SHARED, dev->name, dev);
+ IRQF_SHARED, dev->name, dev);
if (err != 0) {
printk(KERN_ERR "uml_net_open: failed to get irq(%d)\n", err);
err = -ENETUNREACH;
|