]> xenbits.xensource.com Git - people/iwj/xen.git/commitdiff
x86emul: suppress general register update upon AVX gather failures
authorJan Beulich <jbeulich@suse.com>
Wed, 15 May 2019 07:46:41 +0000 (09:46 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 15 May 2019 07:46:41 +0000 (09:46 +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 b1f3b568ab6f8e2893f06843b5fc5ad3ff936982..28e1248d2fc7011202489f16d8178cac84cc85de 100644 (file)
@@ -7746,6 +7746,9 @@ x86_emulate(
         invoke_stub("", "", "+m" (mask) : "a" (&mask));
         put_stub(stub);
 
+        if ( rc != X86EMUL_OKAY )
+            goto done;
+
         state->simd_size = simd_none;
         break;
     }