Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: isp1760: set IRQ flags properly

The IRQF_DISABLED is a NOOP and scheduled to be removed. According to
commit e58aa3d2d0cc ("genirq: Run irq handlers with interrupts
disabled") running IRQ handlers with interrupts enabled can cause stack
overflows when the interrupt line of the issuing device is still active.

This patch removes using this deprecated flag and additionally removes
redundantly setting IRQF_SHARED for isp1760_udc_register().

Signed-off-by: Valentin Rothberg <Valentin.Rothberg@lip6.fr>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>

authored by

Valentin Rothberg and committed by
Felipe Balbi
80b4a0f8 1c390eb3

+3 -4
+1 -2
drivers/usb/isp1760/isp1760-core.c
··· 151 151 } 152 152 153 153 if (IS_ENABLED(CONFIG_USB_ISP1761_UDC) && !udc_disabled) { 154 - ret = isp1760_udc_register(isp, irq, irqflags | IRQF_SHARED | 155 - IRQF_DISABLED); 154 + ret = isp1760_udc_register(isp, irq, irqflags); 156 155 if (ret < 0) { 157 156 isp1760_hcd_unregister(&isp->hcd); 158 157 return ret;
+2 -2
drivers/usb/isp1760/isp1760-udc.c
··· 1453 1453 1454 1454 sprintf(udc->irqname, "%s (udc)", devname); 1455 1455 1456 - ret = request_irq(irq, isp1760_udc_irq, IRQF_SHARED | IRQF_DISABLED | 1457 - irqflags, udc->irqname, udc); 1456 + ret = request_irq(irq, isp1760_udc_irq, IRQF_SHARED | irqflags, 1457 + udc->irqname, udc); 1458 1458 if (ret < 0) 1459 1459 goto error; 1460 1460