Re: [PATCH] PCI: Remove unused includes and superfluous struct declaration
Hi Krzysztof, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [cannot apply to v5.3-rc6 next-20190830] [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/Krzysztof-Wilczynski/PCI-Remove-unused-includes-and-superfluous-struct-declaration/20190902-040019 config: arm64-defconfig (attached as .config) compiler: aarch64-linux-gcc (GCC) 7.4.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.4.0 make.cross ARCH=arm64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All error/warnings (new ones prefixed by >>): In file included from include/linux/list.h:9:0, from include/linux/kobject.h:19, from include/linux/of.h:17, from include/linux/irqdomain.h:35, from include/linux/acpi.h:13, from include/linux/acpi_iort.h:10, from drivers/irqchip/irq-gic-v3-its-pci-msi.c:7: drivers/irqchip/irq-gic-v3-its-pci-msi.c: In function 'its_pci_msi_vec_count': >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:37:12: error: implicit declaration >> of function 'pci_msi_vec_count'; did you mean 'its_pci_msi_vec_count'? >> [-Werror=implicit-function-declaration] msi = max(pci_msi_vec_count(pdev), 0); ^ include/linux/kernel.h:821:22: note: in definition of macro '__typecheck' (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) ^ include/linux/kernel.h:845:24: note: in expansion of macro '__safe_cmp' __builtin_choose_expr(__safe_cmp(x, y), \ ^~ include/linux/kernel.h:861:19: note: in expansion of macro '__careful_cmp' #define max(x, y) __careful_cmp(x, y, >) ^ >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:37:8: note: in expansion of macro >> 'max' msi = max(pci_msi_vec_count(pdev), 0); ^~~ >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:38:13: error: implicit declaration >> of function 'pci_msix_vec_count'; did you mean 'its_pci_msi_vec_count'? >> [-Werror=implicit-function-declaration] msix = max(pci_msix_vec_count(pdev), 0); ^ include/linux/kernel.h:821:22: note: in definition of macro '__typecheck' (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) ^ include/linux/kernel.h:845:24: note: in expansion of macro '__safe_cmp' __builtin_choose_expr(__safe_cmp(x, y), \ ^~ include/linux/kernel.h:861:19: note: in expansion of macro '__careful_cmp' #define max(x, y) __careful_cmp(x, y, >) ^ drivers/irqchip/irq-gic-v3-its-pci-msi.c:38:9: note: in expansion of macro 'max' msix = max(pci_msix_vec_count(pdev), 0); ^~~ drivers/irqchip/irq-gic-v3-its-pci-msi.c: In function 'its_pci_msi_prepare': >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:60:7: error: implicit declaration >> of function 'dev_is_pci'; did you mean 'dev_to_psd'? >> [-Werror=implicit-function-declaration] if (!dev_is_pci(dev)) ^~ dev_to_psd >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:65:9: error: implicit declaration >> of function 'to_pci_dev'; did you mean 'atomic_dec'? >> [-Werror=implicit-function-declaration] pdev = to_pci_dev(dev); ^~ atomic_dec >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:65:7: warning: assignment makes >> pointer from integer without a cast [-Wint-conversion] pdev = to_pci_dev(dev); ^ >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:70:2: error: implicit declaration >> of function 'pci_for_each_dma_alias'; did you mean 'xas_for_each_conflict'? >> [-Werror=implicit-function-declaration] pci_for_each_dma_alias(pdev, its_get_pci_alias, &alias_dev); ^~ xas_for_each_conflict >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:71:36: error: dereferencing pointer >> to incomplete type 'struct pci_dev' if (alias_dev != pdev && alias_dev->subordinate) ^~ >> drivers/irqchip/irq-gic-v3-its-pci-msi.c:72:3: error: implicit declaration >> of function 'pci_walk_bus' [-Werror=implicit-function-declaration] pci_walk_bus(alias_dev->subordinate, its_pci_msi_vec_count, ^~~~ cc1: some warnings being treated as errors -- drivers/irqchip/irq-gic-v2m.c: In function 'gicv2m_acpi_init': >> drivers/irqchip/irq-gic-v2m.c:558:2: error: implicit declaration of function >> 'pci_msi_register_fwnode_provider'; did you mean 'acpi_bus_register_driver'? >> [-Werror=implicit-function-declaration] pci_msi_register_fwnode_provider(&gicv2m_
Re: [PATCH] PCI: Remove unused includes and superfluous struct declaration
Hi Krzysztof, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [cannot apply to v5.3-rc6 next-20190830] [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/Krzysztof-Wilczynski/PCI-Remove-unused-includes-and-superfluous-struct-declaration/20190902-040019 config: x86_64-randconfig-f004-201935 (attached as .config) compiler: gcc-7 (Debian 7.4.0-11) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): In file included from :0:0: include/linux/of_pci.h: In function 'of_pci_get_devfn': >> include/linux/of_pci.h:24:10: error: 'EINVAL' undeclared (first use in this >> function) return -EINVAL; ^~ include/linux/of_pci.h:24:10: note: each undeclared identifier is reported only once for each function it appears in vim +/EINVAL +24 include/linux/of_pci.h 64c5c759084e153 Arnd Bergmann 2014-06-04 21 64c5c759084e153 Arnd Bergmann 2014-06-04 22 static inline int of_pci_get_devfn(struct device_node *np) 64c5c759084e153 Arnd Bergmann 2014-06-04 23 { 64c5c759084e153 Arnd Bergmann 2014-06-04 @24return -EINVAL; 64c5c759084e153 Arnd Bergmann 2014-06-04 25 } 64c5c759084e153 Arnd Bergmann 2014-06-04 26 :: The code at line 24 was first introduced by commit :: 64c5c759084e153272eb05f4103de3e0adf5a88a of/irq: provide more wrappers for !CONFIG_OF :: TO: Arnd Bergmann :: CC: Rob Herring --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v4 1/6] x86, s390: Move ARCH_HAS_MEM_ENCRYPT definition to arch/Kconfig
On Tue, 2019-08-06 at 04:49:14 UTC, Thiago Jung Bauermann wrote: > powerpc is also going to use this feature, so put it in a generic location. > > Signed-off-by: Thiago Jung Bauermann > Reviewed-by: Thomas Gleixner > Reviewed-by: Christoph Hellwig Series applied to powerpc topic/mem-encrypt, thanks. https://git.kernel.org/powerpc/c/0c9c1d56397518eb823d458b00b06bcccd956794 cheers ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v8 6/7] iommu/vt-d: Add trace events for device dma map/unmap
Hi Steve, On 8/30/19 9:53 PM, Steven Rostedt wrote: On Fri, 30 Aug 2019 15:17:17 +0800 Lu Baolu wrote: This adds trace support for the Intel IOMMU driver. It also declares some events which could be used to trace the events when an IOVA is being mapped or unmapped in a domain. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Signed-off-by: Mika Westerberg Signed-off-by: Lu Baolu Reviewed-by: Steven Rostedt (VMware) --- drivers/iommu/Makefile | 1 + drivers/iommu/intel-trace.c| 14 + include/trace/events/intel_iommu.h | 84 ++ 3 files changed, 99 insertions(+) create mode 100644 drivers/iommu/intel-trace.c create mode 100644 include/trace/events/intel_iommu.h diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile index f13f36ae1af6..bfe27b2755bd 100644 --- a/drivers/iommu/Makefile +++ b/drivers/iommu/Makefile @@ -17,6 +17,7 @@ obj-$(CONFIG_ARM_SMMU) += arm-smmu.o obj-$(CONFIG_ARM_SMMU_V3) += arm-smmu-v3.o obj-$(CONFIG_DMAR_TABLE) += dmar.o obj-$(CONFIG_INTEL_IOMMU) += intel-iommu.o intel-pasid.o +obj-$(CONFIG_INTEL_IOMMU) += intel-trace.o obj-$(CONFIG_INTEL_IOMMU_DEBUGFS) += intel-iommu-debugfs.o obj-$(CONFIG_INTEL_IOMMU_SVM) += intel-svm.o obj-$(CONFIG_IPMMU_VMSA) += ipmmu-vmsa.o diff --git a/drivers/iommu/intel-trace.c b/drivers/iommu/intel-trace.c new file mode 100644 index ..bfb6a6e37a88 --- /dev/null +++ b/drivers/iommu/intel-trace.c @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Intel IOMMU trace support + * + * Copyright (C) 2019 Intel Corporation + * + * Author: Lu Baolu + */ + +#include +#include + +#define CREATE_TRACE_POINTS +#include diff --git a/include/trace/events/intel_iommu.h b/include/trace/events/intel_iommu.h new file mode 100644 index ..9c28e6cae86f --- /dev/null +++ b/include/trace/events/intel_iommu.h @@ -0,0 +1,84 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Intel IOMMU trace support + * + * Copyright (C) 2019 Intel Corporation + * + * Author: Lu Baolu + */ +#ifdef CONFIG_INTEL_IOMMU +#undef TRACE_SYSTEM +#define TRACE_SYSTEM intel_iommu + +#if !defined(_TRACE_INTEL_IOMMU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_INTEL_IOMMU_H + +#include +#include + +DECLARE_EVENT_CLASS(dma_map, + TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr, +size_t size), + + TP_ARGS(dev, dev_addr, phys_addr, size), + + TP_STRUCT__entry( + __string(dev_name, dev_name(dev)) + __field(dma_addr_t, dev_addr) + __field(phys_addr_t, phys_addr) + __field(size_t, size) + ), + + TP_fast_assign( + __assign_str(dev_name, dev_name(dev)); + __entry->dev_addr = dev_addr; + __entry->phys_addr = phys_addr; + __entry->size = size; + ), + + TP_printk("dev=%s dev_addr=0x%llx phys_addr=0x%llx size=%zu", + __get_str(dev_name), + (unsigned long long)__entry->dev_addr, + (unsigned long long)__entry->phys_addr, + __entry->size) +); + +DEFINE_EVENT(dma_map, bounce_map_single, + TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr, +size_t size), + TP_ARGS(dev, dev_addr, phys_addr, size) +); Do you plan on adding more events to these classes? This patch has two distinct DECLARE_EVENT_CLASS() calls, and each has one DEFINE_EVENT() for them. Yes, we will add more. This patch only adds the trace events that are necessary for this patch series's development. It's easy to extend to other events. It's fine to do this, but I'm curious to why you did not use the "TRACE_EVENT()" macro, which basically is just a single DECLARE_EVENT_CLASS() followed by a single DEFINE_EVENT(). In other words, you just open coded TRACE_EVENT(). Fair enough. -- Steve Best regards, Lu Baolu + +DECLARE_EVENT_CLASS(dma_unmap, + TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size), + + TP_ARGS(dev, dev_addr, size), + + TP_STRUCT__entry( + __string(dev_name, dev_name(dev)) + __field(dma_addr_t, dev_addr) + __field(size_t, size) + ), + + TP_fast_assign( + __assign_str(dev_name, dev_name(dev)); + __entry->dev_addr = dev_addr; + __entry->size = size; + ), + + TP_printk("dev=%s dev_addr=0x%llx size=%zu", + __get_str(dev_name), + (unsigned long long)__entry->dev_addr, + __entry->size) +); + +DEFINE_EVENT(dma_unmap, bounce_unmap_single, + TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size), + TP_ARGS(dev, dev_addr, size) +); + +#endif /* _TRACE_INTEL_IOMMU_H */ + +/* This part must be outside protection */ +#include +#endif /* CONFIG_INTEL_IOMMU */
Re: [PATCH v8 3/7] swiotlb: Zero out bounce buffer for untrusted device
Hi Christoph, On 8/30/19 3:31 PM, Christoph Hellwig wrote: On Fri, Aug 30, 2019 at 03:17:14PM +0800, Lu Baolu wrote: +#include + if (dev_is_untrusted(hwdev) && zero_size) + memset(zero_addr, 0, zero_size); As said before swiotlb must not grow pci dependencies like this. I understand your concern. I will try to remove this dependency in the next version. Please move the untrusted flag to struct device. The untrusted flag is introduced in another series. I agree that we could consider to move it to struct device, but I think making it in a separated patch looks better. Best regards, Lu Baolu ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
[PATCH] swiotlb-zen: Convert to use macro
Rather than using static int max_dma_bits, this can be coverted to use as macro. Signed-off-by: Souptick Joarder --- drivers/xen/swiotlb-xen.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index ae1df49..d1eced5 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -38,6 +38,7 @@ #include #include +#define MAX_DMA_BITS 32 /* * Used to do a quick range check in swiotlb_tbl_unmap_single and * swiotlb_tbl_sync_single_*, to see if the memory was in fact allocated by this @@ -114,8 +115,6 @@ static int is_xen_swiotlb_buffer(dma_addr_t dma_addr) return 0; } -static int max_dma_bits = 32; - static int xen_swiotlb_fixup(void *buf, size_t size, unsigned long nslabs) { @@ -135,7 +134,7 @@ static int is_xen_swiotlb_buffer(dma_addr_t dma_addr) p + (i << IO_TLB_SHIFT), get_order(slabs << IO_TLB_SHIFT), dma_bits, &dma_handle); - } while (rc && dma_bits++ < max_dma_bits); + } while (rc && dma_bits++ < MAX_DMA_BITS); if (rc) return rc; -- 1.9.1
[PATCH] PCI: Remove unused includes and superfluous struct declaration
Remove and from being included directly as part of the include/linux/of_pci.h, and remove superfluous declaration of struct of_phandle_args. Move users of include to include and directly rather than rely on both being included transitively through . Signed-off-by: Krzysztof Wilczynski --- drivers/iommu/of_iommu.c | 2 ++ drivers/pci/controller/dwc/pcie-designware-host.c | 1 + drivers/pci/controller/pci-aardvark.c | 1 + drivers/pci/pci.c | 1 + drivers/pci/probe.c | 1 + include/linux/of_pci.h| 4 +--- 6 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c index 614a93aa5305..026ad2b29dcd 100644 --- a/drivers/iommu/of_iommu.c +++ b/drivers/iommu/of_iommu.c @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index d3156446ff27..7a9bef993e57 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c index fc0fe4d4de49..3a05f6ca95b0 100644 --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 484e35349565..571e7e00984b 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 169943f17a4c..11b11a652d18 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/include/linux/of_pci.h b/include/linux/of_pci.h index 21a89c4880fa..7929b4c0e886 100644 --- a/include/linux/of_pci.h +++ b/include/linux/of_pci.h @@ -2,11 +2,9 @@ #ifndef __OF_PCI_H #define __OF_PCI_H -#include -#include +#include struct pci_dev; -struct of_phandle_args; struct device_node; #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_PCI) -- 2.23.0