소스 검색

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>
Valentin Rothberg 10 년 전
부모
커밋
80b4a0f8fe
2개의 변경된 파일3개의 추가작업 그리고 4개의 파일을 삭제
  1. 1 2
      drivers/usb/isp1760/isp1760-core.c
  2. 2 2
      drivers/usb/isp1760/isp1760-udc.c

+ 1 - 2
drivers/usb/isp1760/isp1760-core.c

@@ -151,8 +151,7 @@ int isp1760_register(struct resource *mem, int irq, unsigned long irqflags,
 	}
 	}
 
 
 	if (IS_ENABLED(CONFIG_USB_ISP1761_UDC) && !udc_disabled) {
 	if (IS_ENABLED(CONFIG_USB_ISP1761_UDC) && !udc_disabled) {
-		ret = isp1760_udc_register(isp, irq, irqflags | IRQF_SHARED |
-					   IRQF_DISABLED);
+		ret = isp1760_udc_register(isp, irq, irqflags);
 		if (ret < 0) {
 		if (ret < 0) {
 			isp1760_hcd_unregister(&isp->hcd);
 			isp1760_hcd_unregister(&isp->hcd);
 			return ret;
 			return ret;

+ 2 - 2
drivers/usb/isp1760/isp1760-udc.c

@@ -1453,8 +1453,8 @@ int isp1760_udc_register(struct isp1760_device *isp, int irq,
 
 
 	sprintf(udc->irqname, "%s (udc)", devname);
 	sprintf(udc->irqname, "%s (udc)", devname);
 
 
-	ret = request_irq(irq, isp1760_udc_irq, IRQF_SHARED | IRQF_DISABLED |
-			  irqflags, udc->irqname, udc);
+	ret = request_irq(irq, isp1760_udc_irq, IRQF_SHARED | irqflags,
+			  udc->irqname, udc);
 	if (ret < 0)
 	if (ret < 0)
 		goto error;
 		goto error;