[xen] Additional patch for XSA-98 on arm64

myoung myoung at fedoraproject.org
Fri Mar 13 20:02:38 UTC 2015


commit 3019908b4fb8d394b5108d0d08ef90b6202c9756
Author: Michael Young <m.a.young at durham.ac.uk>
Date:   Fri Mar 13 20:01:01 2015 +0000

    Additional patch for XSA-98 on arm64

 xen.spec           |  7 ++++++-
 xsa98-update.patch | 26 ++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)
---
diff --git a/xen.spec b/xen.spec
index f1b5bbd..6d2a5f3 100644
--- a/xen.spec
+++ b/xen.spec
@@ -51,7 +51,7 @@
 Summary: Xen is a virtual machine monitor
 Name:    xen
 Version: 4.5.0
-Release: 5%{?dist}
+Release: 6%{?dist}
 Group:   Development/Libraries
 License: GPLv2+ and LGPLv2+ and BSD
 URL:     http://xen.org/
@@ -92,6 +92,7 @@ Patch23: xsa121.patch
 Patch24: xsa122.patch
 Patch25: xsa123.patch
 Patch26: xsa119-unstable.patch
+Patch27: xsa98-update.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildRequires: transfig libidn-devel zlib-devel texi2html SDL-devel curl-devel
@@ -283,6 +284,7 @@ manage Xen virtual machines.
 %patch24 -p1
 %patch25 -p1
 %patch26 -p1
+%patch27 -p1
 
 # stubdom sources
 cp -v %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} stubdom
@@ -787,6 +789,9 @@ rm -rf %{buildroot}
 %endif
 
 %changelog
+* Fri Mar 13 2015 Michael Young <m.a.young at durham.ac.uk> - 4.5.0-6
+- Additional patch for XSA-98 on arm64
+
 * Thu Mar 12 2015 Michael Young <m.a.young at durham.ac.uk> - 4.5.0-5
 - HVM qemu unexpectedly enabling emulated VGA graphics backends [XSA-119,
 	CVE-2015-2152] (#1201365)
diff --git a/xsa98-update.patch b/xsa98-update.patch
new file mode 100644
index 0000000..cc52e3c
--- /dev/null
+++ b/xsa98-update.patch
@@ -0,0 +1,26 @@
+xen: arm: correct arm64 version of gva_to_ma_par
+
+The implementation was backwards and checked that the guest could
+read when asked about write and vice versa.
+
+This is an update to the fix for XSA-98.
+
+Reported-by: Tamas K Lengyel <tklengyel at sec.in.tum.de>
+Signed-off-by: Ian Campbell <ian.campbell at citrix.com>
+
+diff --git a/xen/include/asm-arm/arm64/page.h b/xen/include/asm-arm/arm64/page.h
+index bb10164..386e434 100644
+--- a/xen/include/asm-arm/arm64/page.h
++++ b/xen/include/asm-arm/arm64/page.h
+@@ -86,9 +86,9 @@ static inline uint64_t gva_to_ma_par(vaddr_t va, unsigned int flags)
+     uint64_t par, tmp = READ_SYSREG64(PAR_EL1);
+ 
+     if ( (flags & GV2M_WRITE) == GV2M_WRITE )
+-        asm volatile ("at s12e1r, %0;" : : "r" (va));
+-    else
+         asm volatile ("at s12e1w, %0;" : : "r" (va));
++    else
++        asm volatile ("at s12e1r, %0;" : : "r" (va));
+     isb();
+     par = READ_SYSREG64(PAR_EL1);
+     WRITE_SYSREG64(tmp, PAR_EL1);


More information about the scm-commits mailing list