]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: entry: Centralize preemption decision
authorMark Rutland <mark.rutland@arm.com>
Mon, 14 Feb 2022 16:52:15 +0000 (16:52 +0000)
committerPeter Zijlstra <peterz@infradead.org>
Sat, 19 Feb 2022 10:11:08 +0000 (11:11 +0100)
commit58fbafe1bfd662490a724d1073844b8521e6e3b3
tree4ac32cc3648e53b92f7732f2f11b69a826c2d3b1
parent4ff3500556829d8f7a1946e804dc5c2393b59139
arm64: entry: Centralize preemption decision

For historical reasons, the decision of whether or not to preempt is
spread across arm64_preempt_schedule_irq() and __el1_irq(), and it would
be clearer if this were all in one place.

Also, arm64_preempt_schedule_irq() calls lockdep_assert_irqs_disabled(),
but this is redundant, as we have a subsequent identical assertion in
__exit_to_kernel_mode(), and preempt_schedule_irq() will
BUG_ON(!irqs_disabled()) anyway.

This patch removes the redundant assertion and centralizes the
preemption decision making within arm64_preempt_schedule_irq().

Other than the slight change to assertion behaviour, there should be no
functional change as a result of this patch.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/r/20220214165216.2231574-7-mark.rutland@arm.com
arch/arm64/kernel/entry-common.c