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 */ |
