From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
To: kbuild test robot <lkp@intel.com>
Cc: "kbuild-all@01.org" <kbuild-all@01.org>,
"lorenzo.pieralisi@arm.com" <lorenzo.pieralisi@arm.com>,
"robin.murphy@arm.com" <robin.murphy@arm.com>,
"jean-philippe.brucker@arm.com" <jean-philippe.brucker@arm.com>,
"will.deacon@arm.com" <will.deacon@arm.com>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"Guohanjun (Hanjun Guo)" <guohanjun@huawei.com>,
John Garry <john.garry@huawei.com>,
"pabba@codeaurora.org" <pabba@codeaurora.org>,
"vkilari@codeaurora.org" <vkilari@codeaurora.org>,
"rruigrok@codeaurora.org" <rruigrok@codeaurora.org>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Linuxarm <linuxarm@huawei.com>
Subject: RE: [PATCH v4 3/4] perf/smmuv3: Add MSI irq support
Date: Wed, 17 Oct 2018 09:48:53 +0000 [thread overview]
Message-ID: <5FC3163CFD30C246ABAA99954A238FA83879F3FB@FRAEML521-MBX.china.huawei.com> (raw)
In-Reply-To: <201810171145.mGVw4SgU%fengguang.wu@intel.com>
> -----Original Message-----
> From: kbuild test robot [mailto:lkp@intel.com]
> Sent: 17 October 2018 04:36
> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
> Cc: kbuild-all@01.org; lorenzo.pieralisi@arm.com; robin.murphy@arm.com;
> jean-philippe.brucker@arm.com; will.deacon@arm.com;
> mark.rutland@arm.com; Guohanjun (Hanjun Guo) <guohanjun@huawei.com>;
> John Garry <john.garry@huawei.com>; pabba@codeaurora.org;
> vkilari@codeaurora.org; rruigrok@codeaurora.org; linux-
> acpi@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; Linuxarm <linuxarm@huawei.com>;
> neil.m.leeder@gmail.com
> Subject: Re: [PATCH v4 3/4] perf/smmuv3: Add MSI irq support
>
> Hi Shameer,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on linux-sof-driver/master]
> [also build test ERROR on v4.19-rc8 next-20181016]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Shameer-Kolothum/arm64-
> SMMUv3-PMU-driver-with-IORT-support/20181017-063949
> base: https://github.com/thesofproject/linux master
> config: sh-allmodconfig (attached as .config)
> compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-
> tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> GCC_VERSION=7.2.0 make.cross ARCH=sh
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from include/linux/kernel.h:11:0,
> from include/linux/list.h:9,
> from include/linux/resource_ext.h:17,
> from include/linux/acpi.h:26,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> drivers//perf/arm_smmuv3_pmu.c: In function
> 'smmu_pmu_counter_set_value':
> include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-
> count-overflow]
> #define BIT(nr) (1UL << (nr))
> ^
> drivers//perf/arm_smmuv3_pmu.c:152:31: note: in expansion of macro 'BIT'
> if (smmu_pmu->counter_mask & BIT(32))
> ^~~
> drivers//perf/arm_smmuv3_pmu.c: In function
> 'smmu_pmu_counter_get_value':
> include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-
> count-overflow]
> #define BIT(nr) (1UL << (nr))
> ^
> drivers//perf/arm_smmuv3_pmu.c:162:31: note: in expansion of macro 'BIT'
> if (smmu_pmu->counter_mask & BIT(32))
> ^~~
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_free_msis':
> >> drivers//perf/arm_smmuv3_pmu.c:601:2: error: implicit declaration of
> function 'platform_msi_domain_free_irqs'; did you mean
> 'platform_get_device_id'? [-Werror=implicit-function-declaration]
> platform_msi_domain_free_irqs(dev);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ok. This is probably because of the COMPILE_TEST added to patch #2 and
this one will have dependency on PCI/PCI_MSI. I will remove that in next
revision.
Thanks,
Shameer
> platform_get_device_id
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_setup_msi':
> >> drivers//perf/arm_smmuv3_pmu.c:632:8: error: implicit declaration of
> function 'platform_msi_domain_alloc_irqs'; did you mean
> 'platform_device_alloc'? [-Werror=implicit-function-declaration]
> ret = platform_msi_domain_alloc_irqs(dev, 1, smmu_pmu_write_msi_msg);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> platform_device_alloc
> In file included from include/linux/list.h:9:0,
> from include/linux/resource_ext.h:17,
> from include/linux/acpi.h:26,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/kernel.h:961:26: note: in definition of macro 'container_of'
> void *__mptr = (void *)(ptr); \
> ^~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> In file included from include/linux/ioport.h:13:0,
> from include/linux/acpi.h:25,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/compiler.h:316:19: note: in definition of macro
> '__compiletime_assert'
> bool __cond = !(condition); \
> ^~~~~~~~~
> include/linux/compiler.h:339:2: note: in expansion of macro
> '_compiletime_assert'
> _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
> ^~~~~~~~~~~~~~~~~~~
> include/linux/build_bug.h:45:37: note: in expansion of macro
> 'compiletime_assert'
> #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
> ^~~~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:2: note: in expansion of macro
> 'BUILD_BUG_ON_MSG'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:20: note: in expansion of macro '__same_type'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~
> include/linux/list.h:366:2: note: in expansion of macro 'container_of'
> container_of(ptr, type, member)
> ^~~~~~~~~~~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/compiler.h:316:19: note: in definition of macro
> '__compiletime_assert'
> bool __cond = !(condition); \
> ^~~~~~~~~
> include/linux/compiler.h:339:2: note: in expansion of macro
> '_compiletime_assert'
> _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
> ^~~~~~~~~~~~~~~~~~~
> include/linux/build_bug.h:45:37: note: in expansion of macro
> 'compiletime_assert'
> #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
> ^~~~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:2: note: in expansion of macro
> 'BUILD_BUG_ON_MSG'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~~~~~~
> include/linux/kernel.h:963:6: note: in expansion of macro '__same_type'
> !__same_type(*(ptr), void), \
> ^~~~~~~~~~~
> include/linux/list.h:366:2: note: in expansion of macro 'container_of'
> container_of(ptr, type, member)
> ^~~~~~~~~~~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_probe':
> drivers//perf/arm_smmuv3_pmu.c:745:64: warning: format '%llx' expects
> argument of type 'long long unsigned int', but argument 4 has type
> 'resource_size_t {aka unsigned int}' [-Wformat=]
> name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "smmuv3_pmcg_%llx",
> ~~~^
> %x
> cc1: some warnings being treated as errors
>
> vim +601 drivers//perf/arm_smmuv3_pmu.c
>
> 596
> 597 static void smmu_pmu_free_msis(void *data)
> 598 {
> 599 struct device *dev = data;
> 600
> > 601 platform_msi_domain_free_irqs(dev);
> 602 }
> 603
> 604 static void smmu_pmu_write_msi_msg(struct msi_desc *desc, struct
> msi_msg *msg)
> 605 {
> 606 phys_addr_t doorbell;
> 607 struct device *dev = msi_desc_to_dev(desc);
> 608 struct smmu_pmu *pmu = dev_get_drvdata(dev);
> 609
> 610 doorbell = (((u64)msg->address_hi) << 32) | msg->address_lo;
> 611 doorbell &= MSI_CFG0_ADDR_MASK;
> 612
> 613 writeq_relaxed(doorbell, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG0);
> 614 writel_relaxed(msg->data, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG1);
> 615 writel_relaxed(MSI_CFG2_MEMATTR_DEVICE_nGnRE,
> 616 pmu->reg_base + SMMU_PMCG_IRQ_CFG2);
> 617 }
> 618
> 619 static void smmu_pmu_setup_msi(struct smmu_pmu *pmu)
> 620 {
> 621 struct msi_desc *desc;
> 622 struct device *dev = pmu->dev;
> 623 int ret;
> 624
> 625 /* Clear MSI address reg */
> 626 writeq_relaxed(0, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG0);
> 627
> 628 /* MSI supported or not */
> 629 if (!(readl(pmu->reg_base + SMMU_PMCG_CFGR) &
> SMMU_PMCG_CFGR_MSI))
> 630 return;
> 631
> > 632 ret = platform_msi_domain_alloc_irqs(dev, 1,
> smmu_pmu_write_msi_msg);
> 633 if (ret) {
> 634 dev_warn(dev, "failed to allocate MSIs\n");
> 635 return;
> 636 }
> 637
> > 638 desc = first_msi_entry(dev);
> 639 if (desc)
> 640 pmu->irq = desc->irq;
> 641
> 642 /* Add callback to free MSIs on teardown */
> 643 devm_add_action(dev, smmu_pmu_free_msis, dev);
> 644 }
> 645
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
WARNING: multiple messages have this Message-ID (diff)
From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
To: kbuild test robot <lkp@intel.com>
Cc: "kbuild-all@01.org" <kbuild-all@01.org>,
"lorenzo.pieralisi@arm.com" <lorenzo.pieralisi@arm.com>,
"robin.murphy@arm.com" <robin.murphy@arm.com>,
"jean-philippe.brucker@arm.com" <jean-philippe.brucker@arm.com>,
"will.deacon@arm.com" <will.deacon@arm.com>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"Guohanjun (Hanjun Guo)" <guohanjun@huawei.com>,
John Garry <john.garry@huawei.com>,
"pabba@codeaurora.org" <pabba@codeaurora.org>,
"vkilari@codeaurora.org" <vkilari@codeaurora.org>,
"rruigrok@codeaurora.org" <rruigrok@codeaurora.org>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Linuxarm <linuxarm@huawei.com>,
"neil.m.leeder@gmail.com" <neil.m.leeder@gmail.com>
Subject: RE: [PATCH v4 3/4] perf/smmuv3: Add MSI irq support
Date: Wed, 17 Oct 2018 09:48:53 +0000 [thread overview]
Message-ID: <5FC3163CFD30C246ABAA99954A238FA83879F3FB@FRAEML521-MBX.china.huawei.com> (raw)
In-Reply-To: <201810171145.mGVw4SgU%fengguang.wu@intel.com>
> -----Original Message-----
> From: kbuild test robot [mailto:lkp@intel.com]
> Sent: 17 October 2018 04:36
> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
> Cc: kbuild-all@01.org; lorenzo.pieralisi@arm.com; robin.murphy@arm.com;
> jean-philippe.brucker@arm.com; will.deacon@arm.com;
> mark.rutland@arm.com; Guohanjun (Hanjun Guo) <guohanjun@huawei.com>;
> John Garry <john.garry@huawei.com>; pabba@codeaurora.org;
> vkilari@codeaurora.org; rruigrok@codeaurora.org; linux-
> acpi@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; Linuxarm <linuxarm@huawei.com>;
> neil.m.leeder@gmail.com
> Subject: Re: [PATCH v4 3/4] perf/smmuv3: Add MSI irq support
>
> Hi Shameer,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on linux-sof-driver/master]
> [also build test ERROR on v4.19-rc8 next-20181016]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Shameer-Kolothum/arm64-
> SMMUv3-PMU-driver-with-IORT-support/20181017-063949
> base: https://github.com/thesofproject/linux master
> config: sh-allmodconfig (attached as .config)
> compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-
> tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> GCC_VERSION=7.2.0 make.cross ARCH=sh
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from include/linux/kernel.h:11:0,
> from include/linux/list.h:9,
> from include/linux/resource_ext.h:17,
> from include/linux/acpi.h:26,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> drivers//perf/arm_smmuv3_pmu.c: In function
> 'smmu_pmu_counter_set_value':
> include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-
> count-overflow]
> #define BIT(nr) (1UL << (nr))
> ^
> drivers//perf/arm_smmuv3_pmu.c:152:31: note: in expansion of macro 'BIT'
> if (smmu_pmu->counter_mask & BIT(32))
> ^~~
> drivers//perf/arm_smmuv3_pmu.c: In function
> 'smmu_pmu_counter_get_value':
> include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-
> count-overflow]
> #define BIT(nr) (1UL << (nr))
> ^
> drivers//perf/arm_smmuv3_pmu.c:162:31: note: in expansion of macro 'BIT'
> if (smmu_pmu->counter_mask & BIT(32))
> ^~~
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_free_msis':
> >> drivers//perf/arm_smmuv3_pmu.c:601:2: error: implicit declaration of
> function 'platform_msi_domain_free_irqs'; did you mean
> 'platform_get_device_id'? [-Werror=implicit-function-declaration]
> platform_msi_domain_free_irqs(dev);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ok. This is probably because of the COMPILE_TEST added to patch #2 and
this one will have dependency on PCI/PCI_MSI. I will remove that in next
revision.
Thanks,
Shameer
> platform_get_device_id
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_setup_msi':
> >> drivers//perf/arm_smmuv3_pmu.c:632:8: error: implicit declaration of
> function 'platform_msi_domain_alloc_irqs'; did you mean
> 'platform_device_alloc'? [-Werror=implicit-function-declaration]
> ret = platform_msi_domain_alloc_irqs(dev, 1, smmu_pmu_write_msi_msg);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> platform_device_alloc
> In file included from include/linux/list.h:9:0,
> from include/linux/resource_ext.h:17,
> from include/linux/acpi.h:26,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/kernel.h:961:26: note: in definition of macro 'container_of'
> void *__mptr = (void *)(ptr); \
> ^~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> In file included from include/linux/ioport.h:13:0,
> from include/linux/acpi.h:25,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/compiler.h:316:19: note: in definition of macro
> '__compiletime_assert'
> bool __cond = !(condition); \
> ^~~~~~~~~
> include/linux/compiler.h:339:2: note: in expansion of macro
> '_compiletime_assert'
> _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
> ^~~~~~~~~~~~~~~~~~~
> include/linux/build_bug.h:45:37: note: in expansion of macro
> 'compiletime_assert'
> #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
> ^~~~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:2: note: in expansion of macro
> 'BUILD_BUG_ON_MSG'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:20: note: in expansion of macro '__same_type'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~
> include/linux/list.h:366:2: note: in expansion of macro 'container_of'
> container_of(ptr, type, member)
> ^~~~~~~~~~~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/compiler.h:316:19: note: in definition of macro
> '__compiletime_assert'
> bool __cond = !(condition); \
> ^~~~~~~~~
> include/linux/compiler.h:339:2: note: in expansion of macro
> '_compiletime_assert'
> _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
> ^~~~~~~~~~~~~~~~~~~
> include/linux/build_bug.h:45:37: note: in expansion of macro
> 'compiletime_assert'
> #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
> ^~~~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:2: note: in expansion of macro
> 'BUILD_BUG_ON_MSG'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~~~~~~
> include/linux/kernel.h:963:6: note: in expansion of macro '__same_type'
> !__same_type(*(ptr), void), \
> ^~~~~~~~~~~
> include/linux/list.h:366:2: note: in expansion of macro 'container_of'
> container_of(ptr, type, member)
> ^~~~~~~~~~~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_probe':
> drivers//perf/arm_smmuv3_pmu.c:745:64: warning: format '%llx' expects
> argument of type 'long long unsigned int', but argument 4 has type
> 'resource_size_t {aka unsigned int}' [-Wformat=]
> name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "smmuv3_pmcg_%llx",
> ~~~^
> %x
> cc1: some warnings being treated as errors
>
> vim +601 drivers//perf/arm_smmuv3_pmu.c
>
> 596
> 597 static void smmu_pmu_free_msis(void *data)
> 598 {
> 599 struct device *dev = data;
> 600
> > 601 platform_msi_domain_free_irqs(dev);
> 602 }
> 603
> 604 static void smmu_pmu_write_msi_msg(struct msi_desc *desc, struct
> msi_msg *msg)
> 605 {
> 606 phys_addr_t doorbell;
> 607 struct device *dev = msi_desc_to_dev(desc);
> 608 struct smmu_pmu *pmu = dev_get_drvdata(dev);
> 609
> 610 doorbell = (((u64)msg->address_hi) << 32) | msg->address_lo;
> 611 doorbell &= MSI_CFG0_ADDR_MASK;
> 612
> 613 writeq_relaxed(doorbell, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG0);
> 614 writel_relaxed(msg->data, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG1);
> 615 writel_relaxed(MSI_CFG2_MEMATTR_DEVICE_nGnRE,
> 616 pmu->reg_base + SMMU_PMCG_IRQ_CFG2);
> 617 }
> 618
> 619 static void smmu_pmu_setup_msi(struct smmu_pmu *pmu)
> 620 {
> 621 struct msi_desc *desc;
> 622 struct device *dev = pmu->dev;
> 623 int ret;
> 624
> 625 /* Clear MSI address reg */
> 626 writeq_relaxed(0, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG0);
> 627
> 628 /* MSI supported or not */
> 629 if (!(readl(pmu->reg_base + SMMU_PMCG_CFGR) &
> SMMU_PMCG_CFGR_MSI))
> 630 return;
> 631
> > 632 ret = platform_msi_domain_alloc_irqs(dev, 1,
> smmu_pmu_write_msi_msg);
> 633 if (ret) {
> 634 dev_warn(dev, "failed to allocate MSIs\n");
> 635 return;
> 636 }
> 637
> > 638 desc = first_msi_entry(dev);
> 639 if (desc)
> 640 pmu->irq = desc->irq;
> 641
> 642 /* Add callback to free MSIs on teardown */
> 643 devm_add_action(dev, smmu_pmu_free_msis, dev);
> 644 }
> 645
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
WARNING: multiple messages have this Message-ID (diff)
From: shameerali.kolothum.thodi@huawei.com (Shameerali Kolothum Thodi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 3/4] perf/smmuv3: Add MSI irq support
Date: Wed, 17 Oct 2018 09:48:53 +0000 [thread overview]
Message-ID: <5FC3163CFD30C246ABAA99954A238FA83879F3FB@FRAEML521-MBX.china.huawei.com> (raw)
In-Reply-To: <201810171145.mGVw4SgU%fengguang.wu@intel.com>
> -----Original Message-----
> From: kbuild test robot [mailto:lkp at intel.com]
> Sent: 17 October 2018 04:36
> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
> Cc: kbuild-all at 01.org; lorenzo.pieralisi at arm.com; robin.murphy at arm.com;
> jean-philippe.brucker at arm.com; will.deacon at arm.com;
> mark.rutland at arm.com; Guohanjun (Hanjun Guo) <guohanjun@huawei.com>;
> John Garry <john.garry@huawei.com>; pabba at codeaurora.org;
> vkilari at codeaurora.org; rruigrok at codeaurora.org; linux-
> acpi at vger.kernel.org; linux-kernel at vger.kernel.org; linux-arm-
> kernel at lists.infradead.org; Linuxarm <linuxarm@huawei.com>;
> neil.m.leeder at gmail.com
> Subject: Re: [PATCH v4 3/4] perf/smmuv3: Add MSI irq support
>
> Hi Shameer,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on linux-sof-driver/master]
> [also build test ERROR on v4.19-rc8 next-20181016]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Shameer-Kolothum/arm64-
> SMMUv3-PMU-driver-with-IORT-support/20181017-063949
> base: https://github.com/thesofproject/linux master
> config: sh-allmodconfig (attached as .config)
> compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-
> tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> GCC_VERSION=7.2.0 make.cross ARCH=sh
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from include/linux/kernel.h:11:0,
> from include/linux/list.h:9,
> from include/linux/resource_ext.h:17,
> from include/linux/acpi.h:26,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> drivers//perf/arm_smmuv3_pmu.c: In function
> 'smmu_pmu_counter_set_value':
> include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-
> count-overflow]
> #define BIT(nr) (1UL << (nr))
> ^
> drivers//perf/arm_smmuv3_pmu.c:152:31: note: in expansion of macro 'BIT'
> if (smmu_pmu->counter_mask & BIT(32))
> ^~~
> drivers//perf/arm_smmuv3_pmu.c: In function
> 'smmu_pmu_counter_get_value':
> include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-
> count-overflow]
> #define BIT(nr) (1UL << (nr))
> ^
> drivers//perf/arm_smmuv3_pmu.c:162:31: note: in expansion of macro 'BIT'
> if (smmu_pmu->counter_mask & BIT(32))
> ^~~
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_free_msis':
> >> drivers//perf/arm_smmuv3_pmu.c:601:2: error: implicit declaration of
> function 'platform_msi_domain_free_irqs'; did you mean
> 'platform_get_device_id'? [-Werror=implicit-function-declaration]
> platform_msi_domain_free_irqs(dev);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ok. This is probably because of the COMPILE_TEST added to patch #2 and
this one will have dependency on PCI/PCI_MSI. I will remove that in next
revision.
Thanks,
Shameer
> platform_get_device_id
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_setup_msi':
> >> drivers//perf/arm_smmuv3_pmu.c:632:8: error: implicit declaration of
> function 'platform_msi_domain_alloc_irqs'; did you mean
> 'platform_device_alloc'? [-Werror=implicit-function-declaration]
> ret = platform_msi_domain_alloc_irqs(dev, 1, smmu_pmu_write_msi_msg);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> platform_device_alloc
> In file included from include/linux/list.h:9:0,
> from include/linux/resource_ext.h:17,
> from include/linux/acpi.h:26,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/kernel.h:961:26: note: in definition of macro 'container_of'
> void *__mptr = (void *)(ptr); \
> ^~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> In file included from include/linux/ioport.h:13:0,
> from include/linux/acpi.h:25,
> from drivers//perf/arm_smmuv3_pmu.c:37:
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/compiler.h:316:19: note: in definition of macro
> '__compiletime_assert'
> bool __cond = !(condition); \
> ^~~~~~~~~
> include/linux/compiler.h:339:2: note: in expansion of macro
> '_compiletime_assert'
> _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
> ^~~~~~~~~~~~~~~~~~~
> include/linux/build_bug.h:45:37: note: in expansion of macro
> 'compiletime_assert'
> #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
> ^~~~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:2: note: in expansion of macro
> 'BUILD_BUG_ON_MSG'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:20: note: in expansion of macro '__same_type'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~
> include/linux/list.h:366:2: note: in expansion of macro 'container_of'
> container_of(ptr, type, member)
> ^~~~~~~~~~~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> include/linux/msi.h:114:38: error: 'struct device' has no member named
> 'msi_list'
> #define dev_to_msi_list(dev) (&(dev)->msi_list)
> ^
> include/linux/compiler.h:316:19: note: in definition of macro
> '__compiletime_assert'
> bool __cond = !(condition); \
> ^~~~~~~~~
> include/linux/compiler.h:339:2: note: in expansion of macro
> '_compiletime_assert'
> _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
> ^~~~~~~~~~~~~~~~~~~
> include/linux/build_bug.h:45:37: note: in expansion of macro
> 'compiletime_assert'
> #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
> ^~~~~~~~~~~~~~~~~~
> include/linux/kernel.h:962:2: note: in expansion of macro
> 'BUILD_BUG_ON_MSG'
> BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
> ^~~~~~~~~~~~~~~~
> include/linux/kernel.h:963:6: note: in expansion of macro '__same_type'
> !__same_type(*(ptr), void), \
> ^~~~~~~~~~~
> include/linux/list.h:366:2: note: in expansion of macro 'container_of'
> container_of(ptr, type, member)
> ^~~~~~~~~~~~
> include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
> list_entry((ptr)->next, type, member)
> ^~~~~~~~~~
> include/linux/msi.h:116:2: note: in expansion of macro 'list_first_entry'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~~
> include/linux/msi.h:116:19: note: in expansion of macro 'dev_to_msi_list'
> list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> ^~~~~~~~~~~~~~~
> >> drivers//perf/arm_smmuv3_pmu.c:638:9: note: in expansion of macro
> 'first_msi_entry'
> desc = first_msi_entry(dev);
> ^~~~~~~~~~~~~~~
> drivers//perf/arm_smmuv3_pmu.c: In function 'smmu_pmu_probe':
> drivers//perf/arm_smmuv3_pmu.c:745:64: warning: format '%llx' expects
> argument of type 'long long unsigned int', but argument 4 has type
> 'resource_size_t {aka unsigned int}' [-Wformat=]
> name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "smmuv3_pmcg_%llx",
> ~~~^
> %x
> cc1: some warnings being treated as errors
>
> vim +601 drivers//perf/arm_smmuv3_pmu.c
>
> 596
> 597 static void smmu_pmu_free_msis(void *data)
> 598 {
> 599 struct device *dev = data;
> 600
> > 601 platform_msi_domain_free_irqs(dev);
> 602 }
> 603
> 604 static void smmu_pmu_write_msi_msg(struct msi_desc *desc, struct
> msi_msg *msg)
> 605 {
> 606 phys_addr_t doorbell;
> 607 struct device *dev = msi_desc_to_dev(desc);
> 608 struct smmu_pmu *pmu = dev_get_drvdata(dev);
> 609
> 610 doorbell = (((u64)msg->address_hi) << 32) | msg->address_lo;
> 611 doorbell &= MSI_CFG0_ADDR_MASK;
> 612
> 613 writeq_relaxed(doorbell, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG0);
> 614 writel_relaxed(msg->data, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG1);
> 615 writel_relaxed(MSI_CFG2_MEMATTR_DEVICE_nGnRE,
> 616 pmu->reg_base + SMMU_PMCG_IRQ_CFG2);
> 617 }
> 618
> 619 static void smmu_pmu_setup_msi(struct smmu_pmu *pmu)
> 620 {
> 621 struct msi_desc *desc;
> 622 struct device *dev = pmu->dev;
> 623 int ret;
> 624
> 625 /* Clear MSI address reg */
> 626 writeq_relaxed(0, pmu->reg_base +
> SMMU_PMCG_IRQ_CFG0);
> 627
> 628 /* MSI supported or not */
> 629 if (!(readl(pmu->reg_base + SMMU_PMCG_CFGR) &
> SMMU_PMCG_CFGR_MSI))
> 630 return;
> 631
> > 632 ret = platform_msi_domain_alloc_irqs(dev, 1,
> smmu_pmu_write_msi_msg);
> 633 if (ret) {
> 634 dev_warn(dev, "failed to allocate MSIs\n");
> 635 return;
> 636 }
> 637
> > 638 desc = first_msi_entry(dev);
> 639 if (desc)
> 640 pmu->irq = desc->irq;
> 641
> 642 /* Add callback to free MSIs on teardown */
> 643 devm_add_action(dev, smmu_pmu_free_msis, dev);
> 644 }
> 645
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
next prev parent reply other threads:[~2018-10-17 9:48 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-16 12:49 [PATCH v4 0/4] arm64 SMMUv3 PMU driver with IORT support Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-16 12:49 ` [PATCH v4 1/4] acpi: arm64: add iort support for PMCG Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-16 12:49 ` [PATCH v4 2/4] perf: add arm64 smmuv3 pmu driver Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-17 21:53 ` kbuild test robot
2018-10-17 21:53 ` kbuild test robot
2018-10-18 9:26 ` Shameerali Kolothum Thodi
2018-10-18 9:26 ` Shameerali Kolothum Thodi
2018-10-18 9:26 ` Shameerali Kolothum Thodi
2018-10-20 4:50 ` kbuild test robot
2018-10-20 4:50 ` kbuild test robot
2018-10-16 12:49 ` [PATCH v4 3/4] perf/smmuv3: Add MSI irq support Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-17 3:35 ` kbuild test robot
2018-10-17 3:35 ` kbuild test robot
2018-10-17 9:48 ` Shameerali Kolothum Thodi [this message]
2018-10-17 9:48 ` Shameerali Kolothum Thodi
2018-10-17 9:48 ` Shameerali Kolothum Thodi
2018-10-17 15:42 ` kbuild test robot
2018-10-17 15:42 ` kbuild test robot
2018-10-17 15:42 ` kbuild test robot
2018-10-16 12:49 ` [PATCH v4 4/4] perf/smmuv3_pmu: Enable HiSilicon Erratum 162001800 quirk Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-16 12:49 ` Shameer Kolothum
2018-10-18 11:43 ` Robin Murphy
2018-10-18 11:43 ` Robin Murphy
2018-10-18 13:34 ` Shameerali Kolothum Thodi
2018-10-18 13:34 ` Shameerali Kolothum Thodi
2018-10-18 13:34 ` Shameerali Kolothum Thodi
2018-10-18 15:27 ` Shameerali Kolothum Thodi
2018-10-18 15:27 ` Shameerali Kolothum Thodi
2018-10-18 15:27 ` Shameerali Kolothum Thodi
2018-11-09 16:50 ` Shameerali Kolothum Thodi
2018-11-09 16:50 ` Shameerali Kolothum Thodi
2018-11-09 16:50 ` Shameerali Kolothum Thodi
2018-11-26 18:45 ` Robin Murphy
2018-11-26 18:45 ` Robin Murphy
2018-11-26 18:45 ` Robin Murphy
2018-11-27 13:23 ` Shameerali Kolothum Thodi
2018-11-27 13:23 ` Shameerali Kolothum Thodi
2018-11-27 13:23 ` Shameerali Kolothum Thodi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5FC3163CFD30C246ABAA99954A238FA83879F3FB@FRAEML521-MBX.china.huawei.com \
--to=shameerali.kolothum.thodi@huawei.com \
--cc=guohanjun@huawei.com \
--cc=jean-philippe.brucker@arm.com \
--cc=john.garry@huawei.com \
--cc=kbuild-all@01.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=lkp@intel.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=pabba@codeaurora.org \
--cc=robin.murphy@arm.com \
--cc=rruigrok@codeaurora.org \
--cc=vkilari@codeaurora.org \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.