From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lu Baolu Subject: Re: [PATCH v5 11/23] driver core: add per device iommu param Date: Mon, 14 May 2018 13:27:13 +0800 Message-ID: <5AF91E31.9060705@linux.intel.com> References: <1526072055-86990-1-git-send-email-jacob.jun.pan@linux.intel.com> <1526072055-86990-12-git-send-email-jacob.jun.pan@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1526072055-86990-12-git-send-email-jacob.jun.pan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Jacob Pan , iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, LKML , Joerg Roedel , David Woodhouse , Greg Kroah-Hartman , Alex Williamson , Jean-Philippe Brucker Cc: Raj Ashok , Rafael Wysocki , Jean Delvare List-Id: iommu@lists.linux-foundation.org Hi, On 05/12/2018 04:54 AM, Jacob Pan wrote: > DMA faults can be detected by IOMMU at device level. Adding a pointer > to struct device allows IOMMU subsystem to report relevant faults > back to the device driver for further handling. > For direct assigned device (or user space drivers), guest OS holds > responsibility to handle and respond per device IOMMU fault. > Therefore we need fault reporting mechanism to propagate faults beyond > IOMMU subsystem. > > There are two other IOMMU data pointers under struct device today, here > we introduce iommu_param as a parent pointer such that all device IOMMU > data can be consolidated here. The idea was suggested here by Greg KH > and Joerg. The name iommu_param is chosen here since iommu_data has been used. This doesn't match what you've done in the patch. Maybe you forgot to cleanup? :-) The idea is to create a parent pointer under device struct and move previous iommu_group and iommu_fwspec together with the iommu fault related data into it. Best regards, Lu Baolu > > Suggested-by: Greg Kroah-Hartman > Reviewed-by: Greg Kroah-Hartman > Signed-off-by: Jacob Pan > Link: https://lkml.org/lkml/2017/10/6/81 > --- > include/linux/device.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/include/linux/device.h b/include/linux/device.h > index 4779569..c1b1796 100644 > --- a/include/linux/device.h > +++ b/include/linux/device.h > @@ -41,6 +41,7 @@ struct iommu_ops; > struct iommu_group; > struct iommu_fwspec; > struct dev_pin_info; > +struct iommu_param; > > struct bus_attribute { > struct attribute attr; > @@ -899,6 +900,7 @@ struct dev_links_info { > * device (i.e. the bus driver that discovered the device). > * @iommu_group: IOMMU group the device belongs to. > * @iommu_fwspec: IOMMU-specific properties supplied by firmware. > + * @iommu_param: Per device generic IOMMU runtime data > * > * @offline_disabled: If set, the device is permanently online. > * @offline: Set after successful invocation of bus type's .offline(). > @@ -988,6 +990,7 @@ struct device { > void (*release)(struct device *dev); > struct iommu_group *iommu_group; > struct iommu_fwspec *iommu_fwspec; > + struct iommu_param *iommu_param; > > bool offline_disabled:1; > bool offline:1;