diff options
Diffstat (limited to 'drivers/vfio/vfio_iommu_type1.c')
-rw-r--r-- | drivers/vfio/vfio_iommu_type1.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index 51810a95416e..b88ad1e5e7ff 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -1584,10 +1584,18 @@ static long vfio_iommu_type1_ioctl(void *iommu_data, } static int vfio_iommu_type1_register_notifier(void *iommu_data, + unsigned long *events, struct notifier_block *nb) { struct vfio_iommu *iommu = iommu_data; + /* clear known events */ + *events &= ~VFIO_IOMMU_NOTIFY_DMA_UNMAP; + + /* refuse to register if still events remaining */ + if (*events) + return -EINVAL; + return blocking_notifier_chain_register(&iommu->notifier, nb); } |