mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-24 05:04:00 +08:00
s390/irq: replace setup_irq() by request_irq()
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> Message-Id: <20200304005049.5291-1-afzal.mohd.ma@gmail.com> [heiko.carstens@de.ibm.com: replace pr_err with panic] Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
fb83510295
commit
8719b6d29d
@ -294,11 +294,6 @@ static irqreturn_t do_ext_interrupt(int irq, void *dummy)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static struct irqaction external_interrupt = {
|
||||
.name = "EXT",
|
||||
.handler = do_ext_interrupt,
|
||||
};
|
||||
|
||||
void __init init_ext_interrupts(void)
|
||||
{
|
||||
int idx;
|
||||
@ -308,7 +303,8 @@ void __init init_ext_interrupts(void)
|
||||
|
||||
irq_set_chip_and_handler(EXT_INTERRUPT,
|
||||
&dummy_irq_chip, handle_percpu_irq);
|
||||
setup_irq(EXT_INTERRUPT, &external_interrupt);
|
||||
if (request_irq(EXT_INTERRUPT, do_ext_interrupt, 0, "EXT", NULL))
|
||||
panic("Failed to register EXT interrupt\n");
|
||||
}
|
||||
|
||||
static DEFINE_SPINLOCK(irq_subclass_lock);
|
||||
|
@ -105,16 +105,12 @@ static irqreturn_t do_airq_interrupt(int irq, void *dummy)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static struct irqaction airq_interrupt = {
|
||||
.name = "AIO",
|
||||
.handler = do_airq_interrupt,
|
||||
};
|
||||
|
||||
void __init init_airq_interrupts(void)
|
||||
{
|
||||
irq_set_chip_and_handler(THIN_INTERRUPT,
|
||||
&dummy_irq_chip, handle_percpu_irq);
|
||||
setup_irq(THIN_INTERRUPT, &airq_interrupt);
|
||||
if (request_irq(THIN_INTERRUPT, do_airq_interrupt, 0, "AIO", NULL))
|
||||
panic("Failed to register AIO interrupt\n");
|
||||
}
|
||||
|
||||
static inline unsigned long iv_size(unsigned long bits)
|
||||
|
@ -563,16 +563,12 @@ static irqreturn_t do_cio_interrupt(int irq, void *dummy)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static struct irqaction io_interrupt = {
|
||||
.name = "I/O",
|
||||
.handler = do_cio_interrupt,
|
||||
};
|
||||
|
||||
void __init init_cio_interrupts(void)
|
||||
{
|
||||
irq_set_chip_and_handler(IO_INTERRUPT,
|
||||
&dummy_irq_chip, handle_percpu_irq);
|
||||
setup_irq(IO_INTERRUPT, &io_interrupt);
|
||||
if (request_irq(IO_INTERRUPT, do_cio_interrupt, 0, "I/O", NULL))
|
||||
panic("Failed to register I/O interrupt\n");
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CCW_CONSOLE
|
||||
|
Loading…
Reference in New Issue
Block a user