Hello.
I wrote:
musb_probe() only regards 0 as a wrong IRQ number, despite
platform_get_irq()
that it calls returns -EXDEV in that case. It leads to
musb_init_controller()
calling request_irq() with a negative IRQ number, and when it naturally
fails, the following is printed to the console:
request_irq -6 failed!
musb_init_controller failed with status -19
Fix musb_probe() to filter out the error values as well as 0.
Signed-off-by: Sergei Shtylyov<sshtylyov@xxxxxxxxxxxxx>
---
This patch is against the recent Linus' tree.
drivers/usb/musb/musb_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: usb-2.6/drivers/usb/musb/musb_core.c
===================================================================
--- usb-2.6.orig/drivers/usb/musb/musb_core.c
+++ usb-2.6/drivers/usb/musb/musb_core.c
@@ -2221,7 +2221,7 @@ static int __init musb_probe(struct plat
void __iomem *base;
iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!iomem || irq == 0)
+ if (!iomem || irq <= 0)
isn't irq 0 a valid IRQ number ?? How about chaging to irq < 0 instead ?
IRQ0 is generally not considered a valid IRQ -- NO_IRQ is defined as
0.
Oops, it's only #define'd this way for PPC. ARM and most other arches (that
#define it at all) use -1.
AFAIK, that decision comes from Linus.
Nevertheless, Linus has declared IRQ0 illegal -- to be remapped, where it
exists.
WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html