Re: [Nouveau] [PATCH v2 2/9] iommu: Add dummy dev_iommu_fwspec_get() helper

2019-11-02 Thread kbuild test robot
Hi Thierry,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.4-rc5 next-20191031]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:
https://github.com/0day-ci/linux/commits/Thierry-Reding/drm-nouveau-Various-fixes-for-GP10B/20191103-125101
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
56cfd2507d3e720f4b1dbf9513e00680516a0826
config: i386-tinyconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot 

All errors (new ones prefixed by >>):

   In file included from arch/x86/kernel/pci-dma.c:4:0:
>> include/linux/iommu.h:615:8: error: redefinition of 'struct iommu_fwspec'
struct iommu_fwspec {};
   ^~~~
   In file included from include/linux/dma-mapping.h:7:0,
from include/linux/dma-direct.h:5,
from arch/x86/kernel/pci-dma.c:2:
   include/linux/device.h:43:8: note: originally defined here
struct iommu_fwspec;
   ^~~~

vim +615 include/linux/iommu.h

4a77a6cf6d9bf9 Joerg Roedel2008-11-26  612  
39d4ebb9592504 Joerg Roedel2011-09-06  613  struct iommu_ops {};
d72e31c9374627 Alex Williamson 2012-05-30  614  struct iommu_group {};
57f98d2f61e191 Robin Murphy2016-09-13 @615  struct iommu_fwspec {};
b0119e870837dc Joerg Roedel2017-02-01  616  struct iommu_device {};
4e32348ba5269a Jacob Pan   2019-06-03  617  struct iommu_fault_param {};
a7d20dc19d9ea7 Will Deacon 2019-07-02  618  struct iommu_iotlb_gather {};
4a77a6cf6d9bf9 Joerg Roedel2008-11-26  619  

:: The code at line 615 was first introduced by commit
:: 57f98d2f61e191ef9d06863c9ce3f8621f3671ef iommu: Introduce iommu_fwspec

:: TO: Robin Murphy 
:: CC: Will Deacon 

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

[Nouveau] [PATCH v2 2/9] iommu: Add dummy dev_iommu_fwspec_get() helper

2019-11-02 Thread Thierry Reding
From: Thierry Reding 

This dummy implementation is useful to avoid a dependency on the
IOMMU_API Kconfig symbol in drivers that can optionally use the IOMMU
API.

In order to fully use this, also move the struct iommu_fwspec definition
out of the IOMMU_API protected region.

Suggested-by: Ben Dooks 
Signed-off-by: Thierry Reding 
---
 include/linux/iommu.h | 47 ---
 1 file changed, 26 insertions(+), 21 deletions(-)

diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index 7bf038b371b8..b092e73b2c86 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -190,6 +190,27 @@ struct iommu_sva_ops {
iommu_mm_exit_handler_t mm_exit;
 };
 
+/**
+ * struct iommu_fwspec - per-device IOMMU instance data
+ * @ops: ops for this device's IOMMU
+ * @iommu_fwnode: firmware handle for this device's IOMMU
+ * @iommu_priv: IOMMU driver private data for this device
+ * @flags: IOMMU flags associated with this device
+ * @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;
+   void*iommu_priv;
+   u32 flags;
+   unsigned intnum_ids;
+   u32 ids[1];
+};
+
+/* ATS is supported */
+#define IOMMU_FWSPEC_PCI_RC_ATS(1 << 0)
+
 #ifdef CONFIG_IOMMU_API
 
 /**
@@ -565,27 +586,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
- * @iommu_priv: IOMMU driver private data for this device
- * @flags: IOMMU flags associated with this device
- * @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;
-   void*iommu_priv;
-   u32 flags;
-   unsigned intnum_ids;
-   u32 ids[1];
-};
-
-/* ATS is supported */
-#define IOMMU_FWSPEC_PCI_RC_ATS(1 << 0)
-
 /**
  * struct iommu_sva - handle to a device-mm bond
  */
@@ -980,6 +980,11 @@ const struct iommu_ops *iommu_ops_from_fwnode(struct 
fwnode_handle *fwnode)
return NULL;
 }
 
+static inline struct iommu_fwspec *dev_iommu_fwspec_get(struct device *dev)
+{
+   return NULL;
+}
+
 static inline bool
 iommu_dev_has_feature(struct device *dev, enum iommu_dev_features feat)
 {
-- 
2.23.0

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau