Messages in this thread | | | From | Andy Lutomirski <> | Date | Sat, 12 Jul 2014 01:39:01 -0700 | Subject | Re: [PATCH 2/2] x86_64,signal: Remove 'fs' and 'gs' from sigcontext |
| |
On Jul 11, 2014 7:21 PM, "Linus Torvalds" <torvalds@linux-foundation.org> wrote: > > On Fri, Jul 11, 2014 at 9:29 AM, Andy Lutomirski <luto@amacapital.net> wrote: > > As far as I can tell, these fields have been set to zero on save and > > ignored on restore since Linux was imported into git. Rename them > > '__pad1' and '__pad2' to avoid confusion and to allow them to be > > recycled some day. > > Shouldn't we actually try to save/restore gs/fs properly? Admittedly, > changing them in the signal handler would be insane, but still.. See > our context switching code with the whole segment selector vs base > save/restore code. Hmm?
This seems like it's asking for trouble. I think wxe'd have to separately save the selectors and the base registers to avoid breaking something, especially once wrgsbase, etc are enabled.
Why would this be needed anyway?
Does anyone implement makecontext, etc using raise/sigreturn? If so, they might be in for a surprise when their gs starts getting saved, too.
Linus, for context, the other patch in this series saves and restores SS. Without that, 64-bit sigreturn to a nondefault stack segment is basically impossible. But I don't see why any other segments (besides CS) are needed for 64-bit sigreturn.
--Andy
> > Linus
| |