linux-stable/arch/microblaze/kernel
Peter Zijlstra 89b3098703 arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled
Current arch_cpu_idle() is called with IRQs disabled, but will return
with IRQs enabled.

However, the very first thing the generic code does after calling
arch_cpu_idle() is raw_local_irq_disable(). This means that
architectures that can idle with IRQs disabled end up doing a
pointless 'enable-disable' dance.

Therefore, push this IRQ disabling into the idle function, meaning
that those architectures can avoid the pointless IRQ state flipping.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Tony Lindgren <tony@atomide.com>
Tested-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
Acked-by: Mark Rutland <mark.rutland@arm.com> [arm64]
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Guo Ren <guoren@kernel.org>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/r/20230112195540.618076436@infradead.org
2023-01-13 11:48:15 +01:00
..
cpu microblaze: Add missing irqflags.h header 2020-02-25 12:33:19 +01:00
syscalls arch: syscalls: simplify uapi/kapi directory creation 2022-03-31 12:03:46 +09:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
asm-offsets.c microblaze: Add custom break vector handler for mb manager 2022-09-26 14:13:28 +02:00
dma.c dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h> 2020-10-06 07:07:06 +02:00
entry.S microblaze: Add support for error injection 2022-09-26 14:13:29 +02:00
exceptions.c exit: Add and use make_task_dead. 2021-12-13 12:04:45 -06:00
ftrace.c ftrace: Cleanup ftrace_dyn_arch_init() 2021-10-08 19:41:39 -04:00
head.S microblaze: Remove noMMU code 2020-11-26 16:39:35 +01:00
hw_exception_handler.S microblaze: Remove noMMU code 2020-11-26 16:39:35 +01:00
irq.c irqchip/xilinx: Switch to GENERIC_IRQ_MULTI_HANDLER 2022-03-04 14:32:57 +00:00
kgdb.c microblaze: fix typos in comments 2022-05-02 08:36:10 +02:00
Makefile kbuild: use obj-y instead extra-y for objects placed at the head 2022-10-02 18:04:05 +09:00
mcount.S microblaze: ftrace: Remove check of obsolete variable function_trace_stop 2014-07-18 13:57:08 -04:00
microblaze_ksyms.c microblaze: use generic strncpy/strnlen from_user 2021-07-27 23:01:13 +02:00
misc.S microblaze: Add sync to tlb operations 2020-02-25 12:33:19 +01:00
module.c microblaze: Remove support for gcc < 4 2021-02-11 18:54:08 +01:00
process.c arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
prom.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ptrace.c ptrace: Create ptrace_report_syscall_{entry,exit} in ptrace.h 2022-03-10 13:35:08 -06:00
reset.c microblaze: Switch to standard restart handler 2019-09-19 10:43:32 +02:00
setup.c microblaze: Remove noMMU code 2020-11-26 16:39:35 +01:00
signal.c ptrace: Cleanups for v5.18 2022-03-28 17:29:53 -07:00
stacktrace.c microblaze: add loglvl to microblaze_unwind() 2020-06-09 09:39:11 -07:00
sys_microblaze.c mm: add ksys_mmap_pgoff() helper; remove in-kernel calls to sys_mmap_pgoff() 2018-04-02 20:16:11 +02:00
syscall_table.S microblaze: syscalls: switch to generic syscalltbl.sh 2021-03-02 13:21:22 +01:00
timer.c pwm: Add support for Xilinx AXI Timer 2022-04-22 18:30:44 +02:00
traps.c kernel: rename show_stack_loglvl() => show_stack() 2020-06-09 09:39:13 -07:00
unwind.c microblaze: Remove noMMU code 2020-11-26 16:39:35 +01:00
vmlinux.lds.S objtool/idle: Validate __cpuidle code as noinstr 2023-01-13 11:48:15 +01:00