summaryrefslogtreecommitdiff
path: root/include/uapi/linux/iommu.h
diff options
context:
space:
mode:
authorJean-Philippe Brucker <jean-philippe.brucker@arm.com>2019-06-12 20:59:38 +0300
committerJoerg Roedel <jroedel@suse.de>2019-06-18 18:14:35 +0300
commit58b55c859ac00c6845b6aed8852c541bc204c935 (patch)
treeb65de7a000f95abed1de8872bf90731508347411 /include/uapi/linux/iommu.h
parentbf3255b3cfe2d06280340dbac3f44b65d3ee6da3 (diff)
downloadlinux-58b55c859ac00c6845b6aed8852c541bc204c935.tar.xz
iommu: Add padding to struct iommu_fault
Ease future extensions of struct iommu_fault_page_request and struct iommu_fault_unrecoverable by adding a few bytes of padding. That way, a new field can be added to either of these structures by simply introducing a new flag. To extend it after the size limit is reached, a new fault reporting structure will have to be negotiated with userspace. With 56 bytes of padding, the total size of iommu_fault is 64 bytes and fits in a cache line on a lot of contemporary machines, while providing 16 and 24 bytes of extension to structures iommu_fault_page_request and iommu_fault_unrecoverable respectively. Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Acked-by: Jacob Pan <jacob.jun.pan@linux.intel.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'include/uapi/linux/iommu.h')
-rw-r--r--include/uapi/linux/iommu.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/uapi/linux/iommu.h b/include/uapi/linux/iommu.h
index f45d8e9e59c3..fc00c5d4741b 100644
--- a/include/uapi/linux/iommu.h
+++ b/include/uapi/linux/iommu.h
@@ -106,6 +106,7 @@ struct iommu_fault_page_request {
* @padding: reserved for future use (should be zero)
* @event: fault event, when @type is %IOMMU_FAULT_DMA_UNRECOV
* @prm: Page Request message, when @type is %IOMMU_FAULT_PAGE_REQ
+ * @padding2: sets the fault size to allow for future extensions
*/
struct iommu_fault {
__u32 type;
@@ -113,6 +114,7 @@ struct iommu_fault {
union {
struct iommu_fault_unrecoverable event;
struct iommu_fault_page_request prm;
+ __u8 padding2[56];
};
};