]> git.baikalelectronics.ru Git - kernel.git/commit
s390/entry: fix duplicate tracking of irq nesting level
authorSven Schnelle <svens@linux.ibm.com>
Mon, 6 Dec 2021 10:50:16 +0000 (11:50 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Dec 2021 08:32:36 +0000 (09:32 +0100)
commit65af370576a52ebdea2ee30baf64980bed418ecf
tree1c1ee8b4c67a8f924919b640dcefd572d1a56319
parent958a7ba802fd6a71ec2502f985d4e73c6b71b6f8
s390/entry: fix duplicate tracking of irq nesting level

commit 416198b460d67a6d14c871d9dc8046512174d706 upstream.

In the current code, when exiting from idle, rcu_irq_enter() is
called twice during irq entry:

irq_entry_enter()-> rcu_irq_enter()
irq_enter() -> rcu_irq_enter()

This may lead to wrong results from rcu_is_cpu_rrupt_from_idle()
because of a wrong dynticks nmi nesting count. Fix this by only
calling irq_enter_rcu().

Cc: <stable@vger.kernel.org> # 5.12+
Reported-by: Mark Rutland <mark.rutland@arm.com>
Fixes: 5711550ab8af ("s390: convert to generic entry")
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/s390/kernel/irq.c