| Date | Wed, 22 Aug 2007 22:25:51 +0200 | From | Frederik Deweerdt <> | Subject | [-mm patch] enforce noreplace-smp in alternative_instructions() |
| |
On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/ > Hi Jeremy,
arch/i386/kernel/alternative.c:alternative_instructions() doesn't check for noreplace-smp before setting capability bits and freeing the __smp_locks section.
Every call to alternatives_smp_unlock() checks for noreplace-smp beforehand, so remove the check from there.
Boot tested on i386 with UP+noreplace-smp (lguest) and SMP (real hardware)
Regards, Frederik
Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c index 9f4ac8b..7c5af80 100644 --- a/arch/i386/kernel/alternative.c +++ b/arch/i386/kernel/alternative.c @@ -221,9 +221,6 @@ static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8 *text_end u8 **ptr; char insn[1]; - if (noreplace_smp) - return; - add_nops(insn, 1); for (ptr = start; ptr < end; ptr++) { if (*ptr < text) @@ -406,7 +403,7 @@ void __init alternative_instructions(void) #endif #ifdef CONFIG_SMP - if (smp_alt_once) { + if (smp_alt_once && !noreplace_smp) { if (1 == num_possible_cpus()) { printk(KERN_INFO "SMP alternatives: switching to UP code\n"); set_bit(X86_FEATURE_UP, boot_cpu_data.x86_capability); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|