parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367
authorHelge Deller <deller@gmx.de>
Tue, 28 Nov 2023 22:16:00 +0000 (23:16 +0100)
committerHelge Deller <deller@gmx.de>
Tue, 27 Feb 2024 21:51:44 +0000 (22:51 +0100)
Use irq*_rcu() functions to fix this kernel warning:

 WARNING: CPU: 0 PID: 0 at kernel/context_tracking.c:367 ct_irq_enter+0xa0/0xd0
 Modules linked in:
 CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.7.0-rc3-64bit+ #1037
 Hardware name: 9000/785/C3700

 IASQ: 0000000000000000 0000000000000000 IAOQ: 00000000412cd758 00000000412cd75c
  IIR: 03ffe01f    ISR: 0000000000000000  IOR: 0000000043c20c20
  CPU:        0   CR30: 0000000041caa000 CR31: 0000000000000000
  ORIG_R28: 0000000000000005
  IAOQ[0]: ct_irq_enter+0xa0/0xd0
  IAOQ[1]: ct_irq_enter+0xa4/0xd0
  RP(r2): irq_enter+0x34/0x68
 Backtrace:
  [<000000004034a3ec>] irq_enter+0x34/0x68
  [<000000004030dc48>] do_cpu_irq_mask+0xc0/0x450
  [<0000000040303070>] intr_return+0x0/0xc

Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/irq.c

index 2f81bfd4f15e17bc0b0ec3fd1b524e571c2924ed..dff66be65d2900a322197f729afe545c5097fc10 100644 (file)
@@ -498,7 +498,7 @@ asmlinkage void do_cpu_irq_mask(struct pt_regs *regs)
 
        old_regs = set_irq_regs(regs);
        local_irq_disable();
-       irq_enter();
+       irq_enter_rcu();
 
        eirr_val = mfctl(23) & cpu_eiem & per_cpu(local_ack_eiem, cpu);
        if (!eirr_val)
@@ -533,7 +533,7 @@ asmlinkage void do_cpu_irq_mask(struct pt_regs *regs)
 #endif /* CONFIG_IRQSTACKS */
 
  out:
-       irq_exit();
+       irq_exit_rcu();
        set_irq_regs(old_regs);
        return;