Messages in this thread | | | Date | Tue, 24 Mar 2015 12:55:32 -0400 | Subject | Re: [PATCH] x86: vdso32/syscall.S: do not load __USER32_DS to %ss | From | Brian Gerst <> |
| |
On Tue, Mar 24, 2015 at 10:08 AM, Denys Vlasenko <dvlasenk@redhat.com> wrote: > On 03/24/2015 07:34 AM, Ingo Molnar wrote: >> >> * Denys Vlasenko <vda.linux@googlemail.com> wrote: >> >>> On Mon, Mar 23, 2015 at 9:38 PM, Andy Lutomirski <luto@amacapital.net> wrote: >>>> Actually, I want to remove the added comment in the code. I don't see >>>> why we should have a specific comment about SS and not about, say, CS, >>>> ESP, or anything else. OK? >>> >>> Ok. >> >> Might be nice to place a more generic description there, which >> registers are expected to be saved by user-space calling in here, etc. > > __kernel_vsyscall entry point has the same ABI in any 32-bit vDSO, > the good old int 0x80 calling convention: > > syscall# in eax, > params in ebx/ecx/edx/esi/edi/ebp, > all registers are preserved by the syscall. > > (I think we don't guarantee that all flags are preserved: > I have a testcase where DF gets cleared).
DF should always be clear on any function call per the C ABI. But, eflags should be preserved, at least the non-privileged bits. I'd like to see that testcase.
-- Brian Gerst
| |