summaryrefslogtreecommitdiffstats
path: root/emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch')
-rw-r--r--emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch b/emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch
new file mode 100644
index 0000000..980cf07
--- /dev/null
+++ b/emulators/xen-kernel/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch
@@ -0,0 +1,42 @@
+From 8894a0c20d920aada305aade0591c1e77167b1db Mon Sep 17 00:00:00 2001
+From: Jan Beulich <jbeulich@suse.com>
+Date: Fri, 2 Jun 2017 15:21:27 +0100
+Subject: [PATCH 2/4] gnttab: never create host mapping unless asked to
+
+We shouldn't create a host mapping unless asked to even in the case of
+mapping a granted MMIO page. In particular the mapping wouldn't be torn
+down when processing the matching unmap request.
+
+This is part of XSA-224.
+
+Reported-by: Jan Beulich <jbeulich@suse.com>
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+---
+ xen/common/grant_table.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
+index 69cbdb6..452538e 100644
+--- a/xen/common/grant_table.c
++++ b/xen/common/grant_table.c
+@@ -911,10 +911,13 @@ __gnttab_map_grant_ref(
+ goto undo_out;
+ }
+
+- rc = create_grant_host_mapping(
+- op->host_addr, frame, op->flags, cache_flags);
+- if ( rc != GNTST_okay )
+- goto undo_out;
++ if ( op->flags & GNTMAP_host_map )
++ {
++ rc = create_grant_host_mapping(op->host_addr, frame, op->flags,
++ cache_flags);
++ if ( rc != GNTST_okay )
++ goto undo_out;
++ }
+ }
+ else if ( owner == rd || owner == dom_cow )
+ {
+--
+2.1.4
+
OpenPOWER on IntegriCloud