s390/irq: Set CIF_NOHZ_DELAY in do_io_irq()
authorSven Schnelle <svens@linux.ibm.com>
Wed, 8 May 2024 09:17:16 +0000 (11:17 +0200)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Tue, 14 May 2024 18:19:46 +0000 (20:19 +0200)
Both do_airq_interrupt() and do_io_interrupt() set
CIF_NOHZ_DELAY. Move it to do_io_irq() to simplify
the code.

Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/kernel/irq.c
drivers/s390/cio/airq.c
drivers/s390/cio/cio.c

index 6f71b0c..89bcd42 100644 (file)
@@ -150,6 +150,7 @@ void noinstr do_io_irq(struct pt_regs *regs)
        if (from_idle)
                account_idle_time_irq();
 
+       set_cpu_flag(CIF_NOHZ_DELAY);
        do {
                regs->tpi_info = S390_lowcore.tpi_info;
                if (S390_lowcore.tpi_info.adapter_IO)
index a108f2b..51f1cb3 100644 (file)
@@ -90,7 +90,6 @@ static irqreturn_t do_airq_interrupt(int irq, void *dummy)
        struct airq_struct *airq;
        struct hlist_head *head;
 
-       set_cpu_flag(CIF_NOHZ_DELAY);
        tpi_info = &get_irq_regs()->tpi_info;
        trace_s390_cio_adapter_int(tpi_info);
        head = &airq_lists[tpi_info->isc];
index 7e759c2..c32e818 100644 (file)
@@ -535,7 +535,6 @@ static irqreturn_t do_cio_interrupt(int irq, void *dummy)
        struct subchannel *sch;
        struct irb *irb;
 
-       set_cpu_flag(CIF_NOHZ_DELAY);
        tpi_info = &get_irq_regs()->tpi_info;
        trace_s390_cio_interrupt(tpi_info);
        irb = this_cpu_ptr(&cio_irb);