]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
x86emul: suppress general register update upon AVX gather failures
authorJan Beulich <jbeulich@suse.com>
Wed, 15 May 2019 07:36:09 +0000 (09:36 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 15 May 2019 07:36:09 +0000 (09:36 +0200)
While destination and mask registers may indeed need updating in this
case, the rIP update in particular needs to be avoided, as well as e.g.
raising a single step trap.

Reported-by: George Dunlap <george.dunlap@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 74f299bbd7d5cc52325b5866c17b44dd0bd1c5a2
master date: 2019-04-03 10:14:32 +0200

xen/arch/x86/x86_emulate/x86_emulate.c

index e3b7e8c396b25f4bc9db074bbff8393e06eac005..651194a683dcf7476af4da92dd3dd99a587af1af 100644 (file)
@@ -8549,6 +8549,9 @@ x86_emulate(
         invoke_stub("", "", "+m" (mask) : "a" (&mask));
         put_stub(stub);
 
+        if ( rc != X86EMUL_OKAY )
+            goto done;
+
         state->simd_size = simd_none;
         break;
     }