Message ID | 20181211134343.10664-2-joro@8bytes.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Introduce device_iommu_mapped() function | expand |
Hello! On 12/11/2018 04:43 PM, Joerg Roedel wrote: > From: Joerg Roedel <jroedel@suse.de> > > Some places in the kernel check the iommu_group pointer in > 'struct device' in order to find ot whether a device is > mapped by an IOMMU. > > This is not good way to make this check, as the pointer will > be moved to 'struct dev_iommu_data'. This way to make the > check is also not very readable. > > Introduce an explicit function to perform this check. > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Acked-by: Robin Murphy <robin.murphy@arm.com> > Signed-off-by: Joerg Roedel <jroedel@suse.de> > --- > include/linux/device.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/include/linux/device.h b/include/linux/device.h > index 1b25c7a43f4c..6cb4640b6160 100644 > --- a/include/linux/device.h > +++ b/include/linux/device.h > @@ -1058,6 +1058,16 @@ static inline struct device *kobj_to_dev(struct kobject *kobj) > return container_of(kobj, struct device, kobj); > } > > +/** > + * device_iommu_mapped - Returns true when the device DMA is translated > + * by an IOMMU > + * @dev: Device to perform the check on > + */ > +static inline bool device_iommu_mapped(struct device *dev) > +{ > + return (dev->iommu_group != NULL); You know that parens are unnecessary here, right? :-) > +} > + > /* Get the wakeup routines, which depend on struct device */ > #include <linux/pm_wakeup.h> > MBR, Sergei
On Tue, Dec 11, 2018 at 05:59:33PM +0300, Sergei Shtylyov wrote: > > +static inline bool device_iommu_mapped(struct device *dev) > > +{ > > + return (dev->iommu_group != NULL); > > You know that parens are unnecessary here, right? :-) Yes, I know, but it feels incomplete to me without them :-) Joerg
On Tue, Dec 11, 2018 at 02:43:38PM +0100, Joerg Roedel wrote: > From: Joerg Roedel <jroedel@suse.de> > > Some places in the kernel check the iommu_group pointer in > 'struct device' in order to find ot whether a device is > mapped by an IOMMU. > > This is not good way to make this check, as the pointer will > be moved to 'struct dev_iommu_data'. This way to make the > check is also not very readable. > > Introduce an explicit function to perform this check. > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> No need to have a cc: line if I have already acked it :) thanks, greg k-h
On Wed, Dec 12, 2018 at 12:04:35PM +0100, Greg Kroah-Hartman wrote: > On Tue, Dec 11, 2018 at 02:43:38PM +0100, Joerg Roedel wrote: > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > No need to have a cc: line if I have already acked it :) Right, I'll remove it, sorry for the noise. Regards, Joerg
On 11-12-18, 14:43, Joerg Roedel wrote: > From: Joerg Roedel <jroedel@suse.de> > > Some places in the kernel check the iommu_group pointer in > 'struct device' in order to find ot whether a device is ^^ Typo
On Mon, Dec 17, 2018 at 11:41:10AM +0530, Vinod Koul wrote: > On 11-12-18, 14:43, Joerg Roedel wrote: > > From: Joerg Roedel <jroedel@suse.de> > > > > Some places in the kernel check the iommu_group pointer in > > 'struct device' in order to find ot whether a device is > ^^ > Typo Right, fixed now, thanks.
diff --git a/include/linux/device.h b/include/linux/device.h index 1b25c7a43f4c..6cb4640b6160 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -1058,6 +1058,16 @@ static inline struct device *kobj_to_dev(struct kobject *kobj) return container_of(kobj, struct device, kobj); } +/** + * device_iommu_mapped - Returns true when the device DMA is translated + * by an IOMMU + * @dev: Device to perform the check on + */ +static inline bool device_iommu_mapped(struct device *dev) +{ + return (dev->iommu_group != NULL); +} + /* Get the wakeup routines, which depend on struct device */ #include <linux/pm_wakeup.h>