Messages in this thread |  | | Subject | Re: [PATCH 06/24] x86,kvm: Fix indirect calls in emulator | From | David Woodhouse <> | Date | Tue, 23 Jan 2018 20:48:13 +0000 |
| |
On Tue, 2018-01-23 at 21:28 +0100, Borislav Petkov wrote: > > > flags = (flags & EFLAGS_MASK) | X86_EFLAGS_IF; > > - asm("push %[flags]; popf; call *%[fastop]" > > - : "=a"(rc) : [fastop]"r"(fop), [flags]"r"(flags)); > > + asm("push %[flags]; popf; " CALL_NOSPEC > > + : "=a"(rc) : [thunk_target]"r"(fop), [flags]"r"(flags)); > > Oh, "thunk_target" is magical.
You can use THUNK_TARGET(fop), which will be "rm" on 32-bit and avoids register starvation in some cases (I don't think the hyperv calls worked until I did that). [unhandled content-type:application/x-pkcs7-signature] |  |