diff options
author | Simon Gaiser <simon@invisiblethingslab.com> | 2018-02-07 21:47:40 +0100 |
---|---|---|
committer | Juergen Gross <jgross@suse.com> | 2018-02-08 10:40:49 +0100 |
commit | 781198f1f373c3e350dbeb3af04a7d4c81c1b8d7 (patch) | |
tree | 9833d89b6977a96bcd309df5f714e50a82f6e4bd /arch/x86 | |
parent | 761191258839b7d922b83064c4251b8bd4e2e7c2 (diff) | |
download | lwn-781198f1f373c3e350dbeb3af04a7d4c81c1b8d7.tar.gz lwn-781198f1f373c3e350dbeb3af04a7d4c81c1b8d7.zip |
xen: Fix {set,clear}_foreign_p2m_mapping on autotranslating guests
Commit 82616f9599a7 ("xen: remove tests for pvh mode in pure pv paths")
removed the check for autotranslation from {set,clear}_foreign_p2m_mapping
but those are called by grant-table.c also on PVH/HVM guests.
Cc: <stable@vger.kernel.org> # 4.14
Fixes: 82616f9599a7 ("xen: remove tests for pvh mode in pure pv paths")
Signed-off-by: Simon Gaiser <simon@invisiblethingslab.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/xen/p2m.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c index 13b4f19b9131..159a897151d6 100644 --- a/arch/x86/xen/p2m.c +++ b/arch/x86/xen/p2m.c @@ -694,6 +694,9 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops, int i, ret = 0; pte_t *pte; + if (xen_feature(XENFEAT_auto_translated_physmap)) + return 0; + if (kmap_ops) { ret = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, kmap_ops, count); @@ -736,6 +739,9 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, { int i, ret = 0; + if (xen_feature(XENFEAT_auto_translated_physmap)) + return 0; + for (i = 0; i < count; i++) { unsigned long mfn = __pfn_to_mfn(page_to_pfn(pages[i])); unsigned long pfn = page_to_pfn(pages[i]); |