From: Jan Beulich Date: Wed, 15 May 2019 07:46:41 +0000 (+0200) Subject: x86emul: suppress general register update upon AVX gather failures X-Git-Tag: archive/raspbian/4.11.3+24-g14b62ab3e5-1+rpi1~1^2~55^2~25 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3859ed92d8c522fe8a50e3ddc4d1669fc5957d66;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 master commit: 74f299bbd7d5cc52325b5866c17b44dd0bd1c5a2 master date: 2019-04-03 10:14:32 +0200 --- diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c index b1f3b568ab..28e1248d2f 100644 --- a/xen/arch/x86/x86_emulate/x86_emulate.c +++ b/xen/arch/x86/x86_emulate/x86_emulate.c @@ -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; }