Commit 1b932761 authored by Natanael Copa's avatar Natanael Copa

main/xen: fix xorg segfaul in linux hvm

fixes #5679

(cherry picked from commit 76eb4052)
parent 9dfe465b
......@@ -3,7 +3,7 @@
# Maintainer: William Pitcock <nenolod@dereferenced.org>
pkgname=xen
pkgver=4.6.1
pkgrel=1
pkgrel=2
pkgdesc="Xen hypervisor"
url="http://www.xen.org/"
arch="x86_64"
......@@ -50,6 +50,7 @@ source="http://bits.xensource.com/oss-xen/release/$pkgver/$pkgname-$pkgver.tar.g
xsa172.patch
xsa173-4.6.patch
x86emul-suppress-writeback-upon-unsuccessful-MMX-SSE-AVX.patch
qemu-coroutine-gthread.patch
qemu-xen_paths.patch
......@@ -252,6 +253,7 @@ debc62758716a169df9f62e6ab2bc634 zlib-1.2.3.tar.gz
e0fd8934b37592a6a3e6ab107a2ab41a xsa170.patch
b14d9a4247ae654579cb757c9b0e949a xsa172.patch
a29812dc4cf1d8013d650496cb107fd0 xsa173-4.6.patch
64760deb1ae50fc87e03bf0386f0a48b x86emul-suppress-writeback-upon-unsuccessful-MMX-SSE-AVX.patch
de1a3db370b87cfb0bddb51796b50315 qemu-coroutine-gthread.patch
08bfdf8caff5d631f53660bf3fd4edaf qemu-xen_paths.patch
e449bb3359b490804ffc7b0ae08d62a0 hotplug-vif-vtrill.patch
......@@ -291,6 +293,7 @@ eae34c8ccc096ad93a74190506b3d55020a88afb0cc504a3a514590e9fd746fd xsa155-xen-000
77b4b14b2c93da5f68e724cf74e1616f7df2e78305f66d164b3de2d980221a9a xsa170.patch
f18282fcb794b8772bc3af51d56860050071bd62a5a909b8f2fc2018e2958154 xsa172.patch
6dbc34e3e2d4415967c4406e0f8392a9395bff74da115ae20f26bd112b19017c xsa173-4.6.patch
8c88792adbe91b5f4c5b0446b79020c220aed0786b0325064fac085f0a5b7292 x86emul-suppress-writeback-upon-unsuccessful-MMX-SSE-AVX.patch
3941f99b49c7e8dafc9fae8aad2136a14c6d84533cd542cc5f1040a41ef7c6fe qemu-coroutine-gthread.patch
e4e5e838e259a3116978aabbcebc1865a895179a7fcbf4bad195c83e9b4c0f98 qemu-xen_paths.patch
dd1e784bc455eb62cb85b3fa24bfc34f575ceaab9597ef6a2f1ee7ff7b3cae0a hotplug-vif-vtrill.patch
......@@ -330,6 +333,7 @@ cad6b571ccca123e2a797cf82669ad0fe2e1ec99b7a68396beb3a2279e2cf87d8f0cf75e22dcd982
09a6defca0f32319dddf4325fb0105a468517a7150c8a8ea287677b4a55f09bf776f5aa673bae22a0708537cf075d5e2143a24aa1b08629ef911a7cdfd8376f0 xsa170.patch
8636f74b270b0ccf56ea6bab4c90d0ee909e5d2891987b4572df4a0906e2230e046aad0c99add6c1d70f7023cc6d99bcfd2947c953f600074a6ed7c176a5d3dc xsa172.patch
d56d7403163fb7eeb2b5c44027c150f9edd1c4df86b38e3834b4b2cb58db94472fe0030c0ec667e41faed00bd6540fab10a4d909c82280d075482d06f8ac4cfb xsa173-4.6.patch
ba3e23ac46be7f7a5ba9b7bdb4821ead8f54a524f3e4a528350c118c588615e697102aa7c077f6580eaad701488e6128c01dcfbc7a991cdfed94e8546420828c x86emul-suppress-writeback-upon-unsuccessful-MMX-SSE-AVX.patch
c3c46f232f0bd9f767b232af7e8ce910a6166b126bd5427bb8dc325aeb2c634b956de3fc225cab5af72649070c8205cc8e1cab7689fc266c204f525086f1a562 qemu-coroutine-gthread.patch
1936ab39a1867957fa640eb81c4070214ca4856a2743ba7e49c0cd017917071a9680d015f002c57fa7b9600dbadd29dcea5887f50e6c133305df2669a7a933f3 qemu-xen_paths.patch
f095ea373f36381491ad36f0662fb4f53665031973721256b23166e596318581da7cbb0146d0beb2446729adfdb321e01468e377793f6563a67d68b8b0f7ffe3 hotplug-vif-vtrill.patch
......
From 2bb230972c5ddb1ca823f47750b5d46a9d302d0e Mon Sep 17 00:00:00 2001
From: Jan Beulich <jbeulich@suse.com>
Date: Thu, 19 May 2016 12:06:33 +0200
Subject: [PATCH] x86emul: suppress writeback upon unsuccessful MMX/SSE/AVX
insn emulation
This in particular prevents updating guest IP when handling the retry
needed to forward the memory access to qemu.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
---
xen/arch/x86/x86_emulate/x86_emulate.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 621332b..d7c6d90 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -4178,6 +4178,8 @@ x86_emulate(
if ( !rc && (b & 1) && (ea.type == OP_MEM) )
rc = ops->write(ea.mem.seg, ea.mem.off, mmvalp,
ea.bytes, ctxt);
+ if ( rc )
+ goto done;
dst.type = OP_NONE;
break;
}
@@ -4430,6 +4432,8 @@ x86_emulate(
if ( !rc && (b != 0x6f) && (ea.type == OP_MEM) )
rc = ops->write(ea.mem.seg, ea.mem.off, mmvalp,
ea.bytes, ctxt);
+ if ( rc )
+ goto done;
dst.type = OP_NONE;
break;
}
--
2.1.4
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment