ARM: 8964/1: ebsa110: replace setup_irq() by request_irq()
authorafzal mohammed <afzal.mohd.ma@gmail.com>
Sun, 8 Mar 2020 14:20:49 +0000 (15:20 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Thu, 19 Mar 2020 09:27:39 +0000 (09:27 +0000)
request_irq() is preferred over setup_irq(). Invocations of setup_irq()
occur after memory allocators are ready.

Per tglx[1], setup_irq() existed in olden days when allocators were not
ready by the time early interrupts were initialized.

Hence replace setup_irq() by request_irq().

[1] https://lkml.kernel.org/r/alpine.DEB.2.20.1710191609480.1971@nanos

Signed-off-by: afzal mohammed <afzal.mohd.ma@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/mach-ebsa110/core.c

index da2ff4f..575b2e2 100644 (file)
@@ -201,17 +201,13 @@ ebsa110_timer_interrupt(int irq, void *dev_id)
        return IRQ_HANDLED;
 }
 
-static struct irqaction ebsa110_timer_irq = {
-       .name           = "EBSA110 Timer Tick",
-       .flags          = IRQF_TIMER | IRQF_IRQPOLL,
-       .handler        = ebsa110_timer_interrupt,
-};
-
 /*
  * Set up timer interrupt.
  */
 void __init ebsa110_timer_init(void)
 {
+       int irq = IRQ_EBSA110_TIMER0;
+
        arch_gettimeoffset = ebsa110_gettimeoffset;
 
        /*
@@ -221,7 +217,9 @@ void __init ebsa110_timer_init(void)
        __raw_writeb(COUNT & 0xff, PIT_T1);
        __raw_writeb(COUNT >> 8, PIT_T1);
 
-       setup_irq(IRQ_EBSA110_TIMER0, &ebsa110_timer_irq);
+       if (request_irq(irq, ebsa110_timer_interrupt, IRQF_TIMER | IRQF_IRQPOLL,
+                       "EBSA110 Timer Tick", NULL))
+               pr_err("Failed to request irq %d (EBSA110 Timer Tick)\n", irq);
 }
 
 static struct plat_serial8250_port serial_platform_data[] = {