Re: [PATCH] xen: Disable stack protector for irq helper

From: Jeremy Fitzhardinge
Date: Sun Oct 04 2009 - 19:07:44 EST


On 10/04/09 11:30, Bastian Blank wrote:
> The stack protector needs additional registers on x86_32, which are not
> saved in calls to the small paravirt interrupt handlers. This leads to
> early crashes as registers are overwritten and not saved by the caller
> as instructed.
>

Thanks for the patch, but I don't think its quite right.
PV_CALLEE_SAVE_REGS_THUNK() is responsible for generating a wrapper for
the functions to save/restore all the appropriate registers. If it is
failing to do so, then the correct fix is to update
PV_SAVE/RESTORE_ALL_CALLER_REGS.

Or have I misunderstood you analysis?

Thanks,
J

> Signed-off-by: Bastian Blank <waldi@xxxxxxxxxx>
>
> diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
> index 3bb4fc2..ac19398 100644
> --- a/arch/x86/xen/Makefile
> +++ b/arch/x86/xen/Makefile
> @@ -5,9 +5,9 @@
> CFLAGS_REMOVE_irq.o = -pg
> endif
>
> -# Make sure early boot has no stackprotector
> nostackp := $(call cc-option, -fno-stack-protector)
> CFLAGS_enlighten.o := $(nostackp)
> +CFLAGS_irq.o := $(nostackp)
> CFLAGS_mmu.o := $(nostackp)
>
> obj-y := enlighten.o setup.o multicalls.o mmu.o irq.o \
>

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