vfio/iommu_type1: initialize pgsize_bitmap in ->open
authorChristoph Hellwig <hch@lst.de>
Fri, 24 Sep 2021 15:57:03 +0000 (17:57 +0200)
committerAlex Williamson <alex.williamson@redhat.com>
Thu, 30 Sep 2021 18:46:45 +0000 (12:46 -0600)
Ensure pgsize_bitmap is always valid by initializing it to PAGE_MASK
in vfio_iommu_type1_open and remove the now pointless update for
the external domain case in vfio_iommu_type1_attach_group, which was
just setting pgsize_bitmap to PAGE_MASK when only external domains
were attached.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210924155705.4258-14-hch@lst.de
[aw: s/ULONG_MAX/PAGE_MASK/ per discussion in link]
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/vfio_iommu_type1.c

index a48e9f597cb21325bdf2eee050cdf225e733df69..27539603eb93566d726d46520814b89355f10008 100644 (file)
@@ -2196,7 +2196,6 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,
                if (!iommu->external_domain) {
                        INIT_LIST_HEAD(&domain->group_list);
                        iommu->external_domain = domain;
-                       vfio_update_pgsize_bitmap(iommu);
                } else {
                        kfree(domain);
                }
@@ -2582,6 +2581,7 @@ static void *vfio_iommu_type1_open(unsigned long arg)
        mutex_init(&iommu->lock);
        BLOCKING_INIT_NOTIFIER_HEAD(&iommu->notifier);
        init_waitqueue_head(&iommu->vaddr_wait);
+       iommu->pgsize_bitmap = PAGE_MASK;
 
        return iommu;
 }