From: Jan Beulich Date: Wed, 3 Apr 2019 08:14:32 +0000 (+0200) Subject: x86emul: suppress general register update upon AVX gather failures X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~2417 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=74f299bbd7d5cc52325b5866c17b44dd0bd1c5a2;p=xen.git x86emul: suppress general register update upon AVX gather failures 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 Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c index ea02d100dd..0293a72292 100644 --- a/xen/arch/x86/x86_emulate/x86_emulate.c +++ b/xen/arch/x86/x86_emulate/x86_emulate.c @@ -8547,6 +8547,9 @@ x86_emulate( invoke_stub("", "", "+m" (mask) : "a" (&mask)); put_stub(stub); + if ( rc != X86EMUL_OKAY ) + goto done; + state->simd_size = simd_none; break; }