Messages in this thread | | | Subject | Re: [PATCH] x86-64/entry: add instruction suffix to SYSRET | From | Jan Beulich <> | Date | Tue, 10 Dec 2019 16:40:49 +0100 |
| |
On 10.12.2019 16:29, Andy Lutomirski wrote: >> On Dec 10, 2019, at 2:48 AM, Jan Beulich <JBeulich@suse.com> wrote: >> >> Omitting suffixes from instructions in AT&T mode is bad practice when >> operand size cannot be determined by the assembler from register >> operands, and is likely going to be warned about by upstream gas in the >> future. Add the missing suffix here. >> >> Signed-off-by: Jan Beulich <jbeulich@suse.com> >> >> --- a/arch/x86/entry/entry_64.S >> +++ b/arch/x86/entry/entry_64.S >> @@ -1728,7 +1728,7 @@ END(nmi) >> SYM_CODE_START(ignore_sysret) >> UNWIND_HINT_EMPTY >> mov $-ENOSYS, %eax >> - sysret >> + sysretl > > Isn’t the default sysretq? sysretl looks more correct, but that suggests > that your changelog is wrong.
No, this is different from ret, and more like iret and lret.
> Is this code even reachable?
Yes afaict, supported by the comment ahead of the symbol. syscall_init() puts its address into MSR_CSTAR when !IA32_EMULATION.
Jan
| |