Re: [2.6 patch] i386 KEXEC must depend on X86_CMPXCHG64

From: Eric W. Biederman
Date: Thu Nov 17 2005 - 20:48:05 EST


Adrian Bunk <bunk@xxxxxxxxx> writes:

> This patch fixes the following compile error with
> CONFIG_X86_CMPXCHG64=n:
>
> <-- snip -->
>
> ...
> CC arch/i386/kernel/machine_kexec.o
> arch/i386/kernel/machine_kexec.c: In function 'identity_map_page':
> arch/i386/kernel/machine_kexec.c:78: error: implicit declaration of function
> 'set_64bit'
> make[1]: *** [arch/i386/kernel/machine_kexec.o] Error 1
>
> <-- snip -->

Good catch but wrong fix. This code works fine on a 386. Or
it did last time I tried it.

This dependency only exists if 3 level page tables are configured.
CONFIG_X86_PAE

The call to set_64bit is a specialized version of set_pmd.
Which also uses set_64_bit. So I don't see how your kernel can
even build without this.

The only way I can see this even being selected is building
a kernel for a 386 or 486 and wanting pae support. Which won't
work on a 386 or a 486. Making it a pointless exercise.

So I think either the pgtable-3level.h needs to fixed,
or we just make CONFIG_HIGHME64G depend on CONFIG_X86_CMPXCHG64.

Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/