On 05/08/2021 09:07, Shameer Kolothum wrote: > A union is introduced to struct iommu_resv_region to hold > any firmware specific data. This is in preparation to add > support for IORT RMR reserve regions and the union now holds > the RMR specific information. > > Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@xxxxxxxxxx> > --- > include/linux/iommu.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index 32d448050bf7..bd0e4641c569 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -114,6 +114,13 @@ enum iommu_resv_type { > IOMMU_RESV_SW_MSI, > }; > > +struct iommu_iort_rmr_data { > +#define IOMMU_RMR_REMAP_PERMITTED (1 << 0) > + u32 flags; > + u32 sid; /* Stream Id associated with RMR entry */ > + void *smmu; /* Associated IORT SMMU node pointer */ > +}; > + > /** > * struct iommu_resv_region - descriptor for a reserved memory region > * @list: Linked list pointers > @@ -121,6 +128,7 @@ enum iommu_resv_type { > * @length: Length of the region in bytes > * @prot: IOMMU Protection flags (READ/WRITE/...) > * @type: Type of the reserved region > + * @rmr: ACPI IORT RMR specific data NIT: This will provoke a kernel-doc warning as the field name in the structure is 'fw_data' not 'rmr' ('rmr being a field of the anonymous union). I've also retested this series on my Juno setup, so feel free to add: Tested-by: Steven Price <steven.price@xxxxxxx> Thanks, Steve > */ > struct iommu_resv_region { > struct list_head list; > @@ -128,6 +136,9 @@ struct iommu_resv_region { > size_t length; > int prot; > enum iommu_resv_type type; > + union { > + struct iommu_iort_rmr_data rmr; > + } fw_data; > }; > > /** >