Re: [PATCH 2.6.21-rc1] x86 signal number delivery fixes

From: Mikael Pettersson
Date: Sun Feb 25 2007 - 18:04:31 EST


On Sun, 25 Feb 2007 23:39:48 +0100, Andi Kleen wrote:
> On Sunday 25 February 2007 12:47, Mikael Pettersson wrote:
> > The invokation of signal handlers on x86 has several bugs
> > in its treatment of the signal number parameter:
> >
> > - the i386 kernel passes the raw not the translated signal number
> > in EAX to non-SA_SIGINFO handlers compiled with -mregparm=3;
> > the value passed on the stack is correct, and SA_SIGINFO handlers
> > are also invoked correctly
> > - the x86-64 kernel's ia32 emulation for SA_SIGINFO handlers also
> > passes the wrong (untranslated) signal number in EAX; the value
> > on the stack is correct
> > - the x86-64 kernel's ia32 emulation for non-SA_SIGINFO handlers
> > passes the wrong (untranslated) signal number both on the stack
> > and in EAX
>
>
> Nobody should be using that signal translation code anymore. Certainly
> nothing in tree. Perhaps it would be better to just rip it out.
>
> If you have a user you should submit it.

The reason I noticed these issues was that I was studying the signal
delivery code for a virtualisation project, and these discrepancies
were immediately obvious just from reading the code.

I'm definitely not using that signal number translation feature; heck
I didn't even know it existed until a few days ago.

If it's dead as you say then it really ought to be removed. It currently
seems to make a mess in every arch's signal delivery code.

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