From 9db0bd6745be9138cb70acf0e1b9aee6a76a8188 Mon Sep 17 00:00:00 2001 From: Yoshinori Sato Date: Sun, 13 Jan 2019 23:01:13 +0900 Subject: [PATCH] fix arch_cpu_idle --- arch/rx/kernel/process.c | 17 +++-------------- kernel/sched/Makefile | 4 ++++ 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/arch/rx/kernel/process.c b/arch/rx/kernel/process.c index 0be56cc467c0..51693091cb10 100644 --- a/arch/rx/kernel/process.c +++ b/arch/rx/kernel/process.c @@ -28,21 +28,10 @@ void (*pm_power_off)(void) = NULL; EXPORT_SYMBOL(pm_power_off); -/* - * The idle thread. There's no useful work to be - * done, so just try to conserve power and have a - * low exit latency (ie sit in a loop waiting for - * somebody to say that they'd like to reschedule) - */ -void cpu_idle(void) +void arch_cpu_idle(void) { - while (1) { - while (!need_resched()) - __asm__ volatile("wait"); - preempt_enable_no_resched(); - schedule(); - preempt_disable(); - } + local_irq_enable(); + __asm__ volatile("wait"); } void __noreturn machine_restart(char * __unused) diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile index c7421f2d05e1..4e0ecafb00d7 100644 --- a/kernel/sched/Makefile +++ b/kernel/sched/Makefile @@ -41,3 +41,7 @@ obj-$(CONFIG_MEMBARRIER) += membarrier.o obj-$(CONFIG_CPU_ISOLATION) += isolation.o obj-$(CONFIG_PSI) += psi.o obj-$(CONFIG_SCHED_CORE) += core_sched.o +ifeq ($(CONFIG_RX),y) +# workaround for gcc bug69073 +CFLAGS_REMOVE_core.o = -g +endif -- 2.11.0