Messages in this thread | | | Date | Tue, 24 Mar 2015 15:08:01 +0100 | From | Denys Vlasenko <> | Subject | Re: [PATCH] x86: vdso32/syscall.S: do not load __USER32_DS to %ss |
| |
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).
Each flavor of fast kernel call does necessary massaging to conform to the ABI. E.g. SYSCALL-based fast call clobbers ecx, so its vDSO saves/restores ecx on stack.
Do you want a patch which adds such comment into every vDSO?
| |