Re: [PATCH 1/2] kexec: Create a new config option CONFIG_KEXEC_FILE for new syscall

From: Shaun Ruffell
Date: Thu Aug 14 2014 - 14:38:04 EST


On Wed, Aug 13, 2014 at 10:42:59AM -0400, Vivek Goyal wrote:
> Currently new system call kexec_file_load() and all the associated code
> compiles if CONFIG_KEXEC=y. But new syscall also compiles purgatory code
> which currently uses gcc option -mcmodel=large. This option seems to be
> available only gcc 4.4 onwards.
>
> Hiding new functionality behind a new config option will not break
> existing users of old gcc. Those who wish to enable new functionality
> will require new gcc. Having said that, I am trying to figure out how
> can I move away from using -mcmodel=large but that can take a while.
>
> I think there are other advantages of introducing this new config
> option. As this option will be enabled only on x86_64, other arches
> don't have to compile generic kexec code which will never be used.
> This new code selects CRYPTO=y and CRYPTO_SHA256=y. And all other
> arches had to do this for CONFIG_KEXEC. Now with introduction
> of new config option, we can remove crypto dependency from other
> arches.
>
> Now CONFIG_KEXEC_FILE is available only on x86_64. So whereever I
> had CONFIG_X86_64 defined, I got rid of that.
>
> For CONFIG_KEXEC_FILE, instead of doing select CRYPTO=y, I changed
> it to "depends on CRYPTO=y". This should be safer as "select" is
> not recursive.
>
> Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
> ---
> arch/x86/Kbuild | 4 +---
> arch/x86/Kconfig | 18 ++++++++++++++----
> arch/x86/Makefile | 5 +----
> arch/x86/kernel/Makefile | 2 +-
> arch/x86/kernel/crash.c | 6 ++----
> arch/x86/kernel/machine_kexec_64.c | 11 +++++++++++
> arch/x86/purgatory/Makefile | 5 +----
> kernel/kexec.c | 11 +++++++++++
> 8 files changed, 42 insertions(+), 20 deletions(-)


Thanks Vivek. It is no surprise but applying this patch resolved my
issue.

Shaun
--
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/