lkml.org 
[lkml]   [2018]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 06/24] x86,kvm: Fix indirect calls in emulator
From
Date
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]
\
 
 \ /
  Last update: 2018-01-23 21:49    [W:0.080 / U:9.740 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site