On 27.10.2021 12:18, Chunfeng Yun wrote:
If platform_get_irq() returns IRQ0 (considered invalid according to
Linus)
the driver blithely passes it to usb_add_hcd() that treats IRQ0 as no
IRQ
at all. Deny IRQ0 right away, returning -EINVAL from the probe()
method...
Fixes: 0cbd4b34cda9 ("xhci: mediatek: support MTK xHCI host
controller")
Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxx>
---
drivers/usb/host/xhci-mtk.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-
mtk.c
index c53f6f276d5c..d2dc8d9863ee 100644
--- a/drivers/usb/host/xhci-mtk.c
+++ b/drivers/usb/host/xhci-mtk.c
@@ -495,7 +495,7 @@ static int xhci_mtk_probe(struct platform_device
*pdev)
return ret;
irq = platform_get_irq_byname_optional(pdev, "host");
- if (irq < 0) {
+ if (irq <= 0) {
if (irq == -EPROBE_DEFER)
return irq;
@@ -503,6 +503,8 @@ static int xhci_mtk_probe(struct platform_device
*pdev)
irq = platform_get_irq(pdev, 0);
if (irq < 0)
return irq;
+ if (!irq)
it's "if (irq <= 0)"?
No, if (irq == 0).
+ return -EINVAL;
}
wakeup_irq = platform_get_irq_byname_optional(pdev, "wakeup");
MBR, Sergey