From: Peter Zijlstra Date: Wed, 24 Aug 2011 13:32:31 +0000 (+0200) Subject: microblaze: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW usage X-Git-Tag: v3.2-rc1~110^2 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=sidebyside;h=84ac218f0257a0cfd7689d9a44f53118dbf307b3;p=pandora-kernel.git microblaze: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW usage As far as I can tell the only reason microblaze has __ARCH_WANT_INTERRUPTS_ON_CTXSW is because it initializes new task state with interrupts enabled so that on switch_to() interrupts get enabled. So change copy_thread() to clear MSR_IE instead of set it, this will ensure switch_to() will always keep IRQs disabled. The scheduler will disable IRQs when taking rq->lock in schedule() and enable IRQs in finish_lock_switch() after its done its magic. This leaves ARM the only __ARCH_WANT_INTERRUPTS_ON_CTXSW user. Signed-off-by: Peter Zijlstra Signed-off-by: Michal Simek --- diff --git a/arch/microblaze/include/asm/system.h b/arch/microblaze/include/asm/system.h index 0953d1425d5b..5a433cbaafb3 100644 --- a/arch/microblaze/include/asm/system.h +++ b/arch/microblaze/include/asm/system.h @@ -17,8 +17,6 @@ #include #include -#define __ARCH_WANT_INTERRUPTS_ON_CTXSW - struct task_struct; struct thread_info; diff --git a/arch/microblaze/kernel/process.c b/arch/microblaze/kernel/process.c index dbb812421d8a..95cc295976a7 100644 --- a/arch/microblaze/kernel/process.c +++ b/arch/microblaze/kernel/process.c @@ -179,6 +179,7 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, ti->cpu_context.msr = (childregs->msr|MSR_VM); ti->cpu_context.msr &= ~MSR_UMS; /* switch_to to kernel mode */ + ti->cpu_context.msr &= ~MSR_IE; #endif ti->cpu_context.r15 = (unsigned long)ret_from_fork - 8;