aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Williamson <alex.williamson@redhat.com>2014-02-26 13:38:39 -0500
committerAlex Williamson <alex.williamson@redhat.com>2014-02-26 13:38:39 -0500
commit88d7ab8949427f492c39f6daf0ac67f0242a88bc (patch)
treecfa7d27b7a59ff6ffe666374a19e08b2e5f1ee64
parentaa429318279b90192f35a97e9ccdc1e83b3a9624 (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.c6
-rw-r--r--include/linux/vfio.h2
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}
1414EXPORT_SYMBOL_GPL(vfio_external_user_iommu_id); 1414EXPORT_SYMBOL_GPL(vfio_external_user_iommu_id);
1415 1415
1416long vfio_external_check_extension(struct vfio_group *group, unsigned long arg)
1417{
1418 return vfio_ioctl_check_extension(group->container, arg);
1419}
1420EXPORT_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(
96extern struct vfio_group *vfio_group_get_external_user(struct file *filep); 96extern struct vfio_group *vfio_group_get_external_user(struct file *filep);
97extern void vfio_group_put_external_user(struct vfio_group *group); 97extern void vfio_group_put_external_user(struct vfio_group *group);
98extern int vfio_external_user_iommu_id(struct vfio_group *group); 98extern int vfio_external_user_iommu_id(struct vfio_group *group);
99extern long vfio_external_check_extension(struct vfio_group *group,
100 unsigned long arg);
99 101
100#endif /* VFIO_H */ 102#endif /* VFIO_H */