Commit d3eeb1d77c5d ("xen/gntdev: use mmu_interval_notifier_insert")
missed a test for use_ptemod when calling mmu_interval_read_begin(). Fix
that.

Fixes: d3eeb1d77c5d ("xen/gntdev: use mmu_interval_notifier_insert")
CC: sta...@vger.kernel.org # 5.5
Reported-by: Ilpo Järvinen <ilpo.jarvi...@cs.helsinki.fi>
Tested-by: Ilpo Järvinen <ilpo.jarvi...@cs.helsinki.fi>
Signed-off-by: Boris Ostrovsky <boris.ostrov...@oracle.com>
---
 drivers/xen/gntdev.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 4fc83e3f5ad3..0258415ca0b2 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -1006,19 +1006,19 @@ static int gntdev_mmap(struct file *flip, struct 
vm_area_struct *vma)
        }
        mutex_unlock(&priv->lock);
 
-       /*
-        * gntdev takes the address of the PTE in find_grant_ptes() and passes
-        * it to the hypervisor in gntdev_map_grant_pages(). The purpose of
-        * the notifier is to prevent the hypervisor pointer to the PTE from
-        * going stale.
-        *
-        * Since this vma's mappings can't be touched without the mmap_sem,
-        * and we are holding it now, there is no need for the notifier_range
-        * locking pattern.
-        */
-       mmu_interval_read_begin(&map->notifier);
-
        if (use_ptemod) {
+               /*
+                * gntdev takes the address of the PTE in find_grant_ptes() and
+                * passes it to the hypervisor in gntdev_map_grant_pages(). The
+                * purpose of the notifier is to prevent the hypervisor pointer
+                * to the PTE from going stale.
+                *
+                * Since this vma's mappings can't be touched without the
+                * mmap_sem, and we are holding it now, there is no need for
+                * the notifier_range locking pattern.
+                */
+               mmu_interval_read_begin(&map->notifier);
+
                map->pages_vm_start = vma->vm_start;
                err = apply_to_page_range(vma->vm_mm, vma->vm_start,
                                          vma->vm_end - vma->vm_start,
-- 
2.17.1


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to