On Thu, Oct 20, 2022 at 01:32:41PM +0200, Ulf Hansson wrote: > On Tue, 18 Oct 2022 at 12:51, Thierry Reding <thierry.reding@xxxxxxxxx> wrote: > > > > From: Thierry Reding <treding@xxxxxxxxxx> > > > > In order to fully make use of the !IOMMU_API stub functions, make the > > struct iommu_fwspec always available so that users of the stubs can keep > > using the structure's internals without causing compile failures. > > > > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > > Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > > > --- > > Hi Joerg, > > > > this is a rebased patch extracted from an ancient series that never > > ended up getting applied: > > > > https://lore.kernel.org/all/20191209120005.2254786-3-thierry.reding@xxxxxxxxx/ > > > > You had already acked this particular patch, so maybe you can pick this > > up. I've seen at least two discussions where this was brought up again, > > so I figured it'd be worth sending this out again because it can help > > remove a number of #ifdef blocks throughout the kernel. > > Yes, this would certainly help to improve the code. To me, it looks > like the current stub functions, like dev_iommu_fwspec_get() for > example, aren't really useful without $subject patch. > > Note that, I have a pending patch for mmc that would benefit from > this. To prevent me from delaying that, an easy way forward, assuming > there are no objections of course, would be to send this for 6.1-rc. Adding Prathamesh for visibility. Another alternative would be to prepend this to Prathamesh's series with an Acked-by from Joerg. Joerg, any preference on how to move forward with this? Thierry > > > > > include/linux/iommu.h | 39 +++++++++++++++++++-------------------- > > 1 file changed, 19 insertions(+), 20 deletions(-) > > > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > > index a325532aeab5..e3295c45d18f 100644 > > --- a/include/linux/iommu.h > > +++ b/include/linux/iommu.h > > @@ -173,6 +173,25 @@ enum iommu_dev_features { > > > > #define IOMMU_PASID_INVALID (-1U) > > > > +/** > > + * struct iommu_fwspec - per-device IOMMU instance data > > + * @ops: ops for this device's IOMMU > > + * @iommu_fwnode: firmware handle for this device's IOMMU > > + * @flags: IOMMU_FWSPEC_* flags > > + * @num_ids: number of associated device IDs > > + * @ids: IDs which this device may present to the IOMMU > > + */ > > +struct iommu_fwspec { > > + const struct iommu_ops *ops; > > + struct fwnode_handle *iommu_fwnode; > > + u32 flags; > > + unsigned int num_ids; > > + u32 ids[]; > > +}; > > + > > +/* ATS is supported */ > > +#define IOMMU_FWSPEC_PCI_RC_ATS (1 << 0) > > + > > #ifdef CONFIG_IOMMU_API > > > > /** > > @@ -598,25 +617,6 @@ extern struct iommu_group *generic_device_group(struct device *dev); > > /* FSL-MC device grouping function */ > > struct iommu_group *fsl_mc_device_group(struct device *dev); > > > > -/** > > - * struct iommu_fwspec - per-device IOMMU instance data > > - * @ops: ops for this device's IOMMU > > - * @iommu_fwnode: firmware handle for this device's IOMMU > > - * @flags: IOMMU_FWSPEC_* flags > > - * @num_ids: number of associated device IDs > > - * @ids: IDs which this device may present to the IOMMU > > - */ > > -struct iommu_fwspec { > > - const struct iommu_ops *ops; > > - struct fwnode_handle *iommu_fwnode; > > - u32 flags; > > - unsigned int num_ids; > > - u32 ids[]; > > -}; > > - > > -/* ATS is supported */ > > -#define IOMMU_FWSPEC_PCI_RC_ATS (1 << 0) > > - > > /** > > * struct iommu_sva - handle to a device-mm bond > > */ > > @@ -680,7 +680,6 @@ bool iommu_group_dma_owner_claimed(struct iommu_group *group); > > > > struct iommu_ops {}; > > struct iommu_group {}; > > -struct iommu_fwspec {}; > > struct iommu_device {}; > > struct iommu_fault_param {}; > > struct iommu_iotlb_gather {}; > > -- > > 2.37.3 > > > > Kind regards > Uffe
Attachment:
signature.asc
Description: PGP signature