diff options
author | Alex Williamson <alex.williamson@redhat.com> | 2014-02-26 13:38:39 -0500 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2014-02-26 13:38:39 -0500 |
commit | 88d7ab8949427f492c39f6daf0ac67f0242a88bc (patch) | |
tree | cfa7d27b7a59ff6ffe666374a19e08b2e5f1ee64 | |
parent | aa429318279b90192f35a97e9ccdc1e83b3a9624 (diff) |
vfio: Add external user check extension interface
This lets us check extensions, particularly VFIO_DMA_CC_IOMMU using
the external user interface, allowing KVM to probe IOMMU coherency.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
-rw-r--r-- | drivers/vfio/vfio.c | 6 | ||||
-rw-r--r-- | include/linux/vfio.h | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c index 21271d8df023..512f479d8a50 100644 --- a/drivers/vfio/vfio.c +++ b/drivers/vfio/vfio.c | |||
@@ -1413,6 +1413,12 @@ int vfio_external_user_iommu_id(struct vfio_group *group) | |||
1413 | } | 1413 | } |
1414 | EXPORT_SYMBOL_GPL(vfio_external_user_iommu_id); | 1414 | EXPORT_SYMBOL_GPL(vfio_external_user_iommu_id); |
1415 | 1415 | ||
1416 | long vfio_external_check_extension(struct vfio_group *group, unsigned long arg) | ||
1417 | { | ||
1418 | return vfio_ioctl_check_extension(group->container, arg); | ||
1419 | } | ||
1420 | EXPORT_SYMBOL_GPL(vfio_external_check_extension); | ||
1421 | |||
1416 | /** | 1422 | /** |
1417 | * Module/class support | 1423 | * Module/class support |
1418 | */ | 1424 | */ |
diff --git a/include/linux/vfio.h b/include/linux/vfio.h index 24579a0312a0..81022a52bc34 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h | |||
@@ -96,5 +96,7 @@ extern void vfio_unregister_iommu_driver( | |||
96 | extern struct vfio_group *vfio_group_get_external_user(struct file *filep); | 96 | extern struct vfio_group *vfio_group_get_external_user(struct file *filep); |
97 | extern void vfio_group_put_external_user(struct vfio_group *group); | 97 | extern void vfio_group_put_external_user(struct vfio_group *group); |
98 | extern int vfio_external_user_iommu_id(struct vfio_group *group); | 98 | extern int vfio_external_user_iommu_id(struct vfio_group *group); |
99 | extern long vfio_external_check_extension(struct vfio_group *group, | ||
100 | unsigned long arg); | ||
99 | 101 | ||
100 | #endif /* VFIO_H */ | 102 | #endif /* VFIO_H */ |