Differential D16416 Diff 46059 head/emulators/xen-kernel47/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch
Changeset View
Changeset View
Standalone View
Standalone View
head/emulators/xen-kernel47/files/0002-gnttab-never-create-host-mapping-unless-asked-to.patch
Property | Old Value | New Value |
---|---|---|
fbsd:nokeywords | null | yes \ No newline at end of property |
svn:eol-style | null | native \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
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 | |||||