[PATCH 6/6] powerpc/booke64: restore VDSO information on critical exception

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Sep 5 15:38:32 EST 2012


On Mon, 2012-08-06 at 16:27 +0300, Mihai Caraman wrote:
> Critical exception handler on 64-bit booke uses user-visible SPRG3 as scratch.
> Restore VDSO information in SPRG3 on exception prolog.

Breaks the build on !BOOKE because of :

> diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
> index b67db22..a0b0d08 100644
> --- a/arch/powerpc/kernel/vdso.c
> +++ b/arch/powerpc/kernel/vdso.c
> @@ -725,6 +725,8 @@ int __cpuinit vdso_getcpu_init(void)
>  	mtspr(SPRN_SPRG3, val);
>  #ifdef CONFIG_KVM_BOOK3S_HANDLER
>  	get_paca()->kvm_hstate.sprg3 = val;
> +#elif CONFIG_PPC_BOOK3E
    ^^^^

You can't "#elif" a CONFIG option.

> +	get_paca()->sprg3 = val;
>  #endif
>  
>  	put_cpu();

Now, my suggestion is to actually move the bloody thing out of
kvm_hstate on server as well, just make it a common "sprg3" field
accross the board.

I'm dropping this one patch (the other ones seem fine so far and will
land in next soon unless I find another problem).

Cheers,
Ben.




More information about the Linuxppc-dev mailing list