summaryrefslogtreecommitdiffstats
path: root/drivers/vfio/group.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--drivers/vfio/group.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/vfio/group.c b/drivers/vfio/group.c
index 610a429c61..ded364588d 100644
--- a/drivers/vfio/group.c
+++ b/drivers/vfio/group.c
@@ -286,6 +286,13 @@ static struct file *vfio_device_open_file(struct vfio_device *device)
*/
filep->f_mode |= (FMODE_PREAD | FMODE_PWRITE);
+ /*
+ * Use the pseudo fs inode on the device to link all mmaps
+ * to the same address space, allowing us to unmap all vmas
+ * associated to this device using unmap_mapping_range().
+ */
+ filep->f_mapping = device->inode->i_mapping;
+
if (device->group->type == VFIO_NO_IOMMU)
dev_warn(device->dev, "vfio-noiommu device opened by user "
"(%s:%d)\n", current->comm, task_pid_nr(current));