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: Michal Simek <michal.simek@xilinx.com>
        return IRQ_HANDLED;
 }
 
-static struct irqaction timer_irqaction = {
-       .handler = timer_interrupt,
-       .flags = IRQF_TIMER,
-       .name = "timer",
-       .dev_id = &clockevent_xilinx_timer,
-};
-
 static __init int xilinx_clockevent_init(void)
 {
        clockevent_xilinx_timer.mult =
 
        freq_div_hz = timer_clock_freq / HZ;
 
-       ret = setup_irq(irq, &timer_irqaction);
+       ret = request_irq(irq, timer_interrupt, IRQF_TIMER, "timer",
+                         &clockevent_xilinx_timer);
        if (ret) {
                pr_err("Failed to setup IRQ");
                return ret;