Re: [Xen-devel] Re: [PATCH] xen: Disable stack protector for irqhelper

From: Ingo Molnar
Date: Mon Oct 12 2009 - 16:54:11 EST



* Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:

> On 10/07/09 09:35, Bastian Blank wrote:
> > On Tue, Oct 06, 2009 at 12:01:12PM -0700, Jeremy Fitzhardinge wrote:
> >
> >> On 10/05/09 20:30, Bastian Blank wrote:
> >>
> >>> The original version saves ecx, but not edx. Both are official
> >>> caller-saved registers.
> >>>
> >> Hm. It doesn't save edx because that can be half of a 64-bit return
> >> value, and in general both eax and edx are marked clobbered.
> >>
> > Then it will be also wrong for functions returning void. They may
> > clobber eax but never set it to something correct.
> >
>
> The asm is marked as clobbering eax/edx, so the compiler knows it can't
> rely on them being preserved. void functions are not expected to
> preserve them either, so it all works out (or if they are, the compiler
> will do the right thing).
>
> Or did you have something else in mind?
>
>
> >> Except one
> >> place; does the patch below help?
> >>
> > Don't you need to remove the complete wrapper setup to get a correct
> > result? (And type safety.)
> >
>
> Which wrapper? Do you mean the callee-save function stuff? Or
> something else?
>
> It compiles cleanly for me and appears to work. Does it solve the
> problem for you?
>
> >>> Well, my call stack say something different. It crashs during early
> >>> startup without a console. The modifications to the function pointers is
> >>> done much later.
> >>>
> >> You're right. But you're holding out on me; can I see your backtrace?
> >>
> > Well, I'm traveling and it needs some time to recreate a broken kernel.
> >
> >
> >> And the disassembly of the troublesome code (both the Xen function and
> >> the calling function)?
> >>
> > That is easy.
> >
>
> OK, I see, thanks.

ping - any update about this fix? Since it fixes a real crash it would
be nice to fix this for .32.

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