xen: Fix {set,clear}_foreign_p2m_mapping on autotranslating guests
authorSimon Gaiser <simon@invisiblethingslab.com>
Wed, 7 Feb 2018 20:47:40 +0000 (21:47 +0100)
committerJuergen Gross <jgross@suse.com>
Thu, 8 Feb 2018 09:40:49 +0000 (10:40 +0100)
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>
arch/x86/xen/p2m.c

index 13b4f19..159a897 100644 (file)
@@ -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]);