All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Toan Le <toan@os.amperecomputing.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Robert Richter <rric@kernel.org>,
	linux-pci@vger.kernel.org
Subject: Re: drivers/pci/controller/pci-xgene.c:511:33: sparse: sparse: incorrect type in argument 2 (different address spaces)
Date: Mon, 17 May 2021 12:16:15 -0500	[thread overview]
Message-ID: <20210517171615.GA23513@bjorn-Precision-5520> (raw)
In-Reply-To: <202105171809.Tay9fImZ-lkp@intel.com>

[+cc Toan, linux-pci]

The patch I think we need is attached below.  I'll post it to the list
separately.

I didn't see any similar issues in the rest of
drivers/pci/controller/.

On Mon, May 17, 2021 at 06:35:17PM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   d07f6ca923ea0927a1024dfccafc5b53b61cfecc
> commit: 6e5a1fff9096ecd259dedcbbdc812aa90986a40e PCI: Avoid building empty drivers
> date:   10 weeks ago
> config: mips-randconfig-s032-20210517 (attached as .config)
> compiler: mipsel-linux-gcc (GCC) 9.3.0
> reproduce:
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # apt-get install sparse
>         # sparse version: v0.6.3-341-g8af24329-dirty
>         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e5a1fff9096ecd259dedcbbdc812aa90986a40e
>         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>         git fetch --no-tags linus master
>         git checkout 6e5a1fff9096ecd259dedcbbdc812aa90986a40e
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=mips 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> 
> sparse warnings: (new ones prefixed by >>)
>    command-line: note: in included file:
>    builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
>    builtin:0:0: sparse: this was the original definition
>    builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
>    builtin:0:0: sparse: this was the original definition
>    builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
>    builtin:0:0: sparse: this was the original definition
>    builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
>    builtin:0:0: sparse: this was the original definition
>    drivers/pci/controller/pci-xgene.c:510:26: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *bar_addr @@     got void [noderef] __iomem * @@
>    drivers/pci/controller/pci-xgene.c:510:26: sparse:     expected void *bar_addr
>    drivers/pci/controller/pci-xgene.c:510:26: sparse:     got void [noderef] __iomem *
> >> drivers/pci/controller/pci-xgene.c:511:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *mem @@     got void *bar_addr @@
>    drivers/pci/controller/pci-xgene.c:511:33: sparse:     expected void volatile [noderef] __iomem *mem
>    drivers/pci/controller/pci-xgene.c:511:33: sparse:     got void *bar_addr
> >> drivers/pci/controller/pci-xgene.c:512:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *mem @@     got void * @@
>    drivers/pci/controller/pci-xgene.c:512:58: sparse:     expected void volatile [noderef] __iomem *mem
>    drivers/pci/controller/pci-xgene.c:512:58: sparse:     got void *
> 
> vim +511 drivers/pci/controller/pci-xgene.c
> 
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  480  
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  481  static void xgene_pcie_setup_ib_reg(struct xgene_pcie_port *port,
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  482  				    struct resource_entry *entry,
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  483  				    u8 *ib_reg_mask)
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  484  {
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  485  	void __iomem *cfg_base = port->cfg_base;
> d963ab22ad32da drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  486  	struct device *dev = port->dev;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  487  	void *bar_addr;
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  488  	u32 pim_reg;
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  489  	u64 cpu_addr = entry->res->start;
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  490  	u64 pci_addr = cpu_addr - entry->offset;
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  491  	u64 size = resource_size(entry->res);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  492  	u64 mask = ~(size - 1) | EN_REG;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  493  	u32 flags = PCI_BASE_ADDRESS_MEM_TYPE_64;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  494  	u32 bar_low;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  495  	int region;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  496  
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  497  	region = xgene_pcie_select_ib_reg(ib_reg_mask, size);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  498  	if (region < 0) {
> d963ab22ad32da drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  499  		dev_warn(dev, "invalid pcie dma-range config\n");
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  500  		return;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  501  	}
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  502  
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  503  	if (entry->res->flags & IORESOURCE_PREFETCH)
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  504  		flags |= PCI_BASE_ADDRESS_MEM_PREFETCH;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  505  
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  506  	bar_low = pcie_bar_low_val((u32)cpu_addr, flags);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  507  	switch (region) {
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  508  	case 0:
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  509  		xgene_pcie_set_ib_mask(port, BRIDGE_CFG_4, flags, size);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  510  		bar_addr = cfg_base + PCI_BASE_ADDRESS_0;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01 @511  		writel(bar_low, bar_addr);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01 @512  		writel(upper_32_bits(cpu_addr), bar_addr + 0x4);
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  513  		pim_reg = PIM1_1L;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  514  		break;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  515  	case 1:
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  516  		xgene_pcie_writel(port, IBAR2, bar_low);
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  517  		xgene_pcie_writel(port, IR2MSK, lower_32_bits(mask));
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  518  		pim_reg = PIM2_1L;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  519  		break;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  520  	case 2:
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  521  		xgene_pcie_writel(port, IBAR3L, bar_low);
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  522  		xgene_pcie_writel(port, IBAR3L + 0x4, upper_32_bits(cpu_addr));
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  523  		xgene_pcie_writel(port, IR3MSKL, lower_32_bits(mask));
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  524  		xgene_pcie_writel(port, IR3MSKL + 0x4, upper_32_bits(mask));
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  525  		pim_reg = PIM3_1L;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  526  		break;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  527  	}
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  528  
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  529  	xgene_pcie_setup_pims(port, pim_reg, pci_addr, ~(size - 1));
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  530  }
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  531  
> 
> :::::: The code at line 511 was first introduced by commit
> :::::: 5f6b6ccdbe1cdfa5aa4347ec5412509b8995db27 PCI: xgene: Add APM X-Gene PCIe driver
> 
> :::::: TO: Tanmay Inamdar <tinamdar@apm.com>
> :::::: CC: Bjorn Helgaas <bhelgaas@google.com>
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org


commit c89e93028d61 ("PCI: xgene: Annotate __iomem pointer")
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Mon May 17 12:07:00 2021 -0500

    PCI: xgene: Annotate __iomem pointer
    
    "bar_addr" is passed as the argument to writel(), which expects a
    "void __iomem *".  Annotate "bar_addr" correctly.  Resolves an sparse
    "incorrect type in argument 2 (different address spaces)" warning.
    
    Link: https://lore.kernel.org/r/202105171809.Tay9fImZ-lkp@intel.com
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c
index 7f503dd4ff81..1a412f5377fb 100644
--- a/drivers/pci/controller/pci-xgene.c
+++ b/drivers/pci/controller/pci-xgene.c
@@ -485,7 +485,7 @@ static void xgene_pcie_setup_ib_reg(struct xgene_pcie_port *port,
 {
 	void __iomem *cfg_base = port->cfg_base;
 	struct device *dev = port->dev;
-	void *bar_addr;
+	void __iomem *bar_addr;
 	u32 pim_reg;
 	u64 cpu_addr = entry->res->start;
 	u64 pci_addr = cpu_addr - entry->offset;

WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Helgaas <helgaas@kernel.org>
To: kbuild-all@lists.01.org
Subject: Re: drivers/pci/controller/pci-xgene.c:511:33: sparse: sparse: incorrect type in argument 2 (different address spaces)
Date: Mon, 17 May 2021 12:16:15 -0500	[thread overview]
Message-ID: <20210517171615.GA23513@bjorn-Precision-5520> (raw)
In-Reply-To: <202105171809.Tay9fImZ-lkp@intel.com>

[-- Attachment #1: Type: text/plain, Size: 10756 bytes --]

[+cc Toan, linux-pci]

The patch I think we need is attached below.  I'll post it to the list
separately.

I didn't see any similar issues in the rest of
drivers/pci/controller/.

On Mon, May 17, 2021 at 06:35:17PM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   d07f6ca923ea0927a1024dfccafc5b53b61cfecc
> commit: 6e5a1fff9096ecd259dedcbbdc812aa90986a40e PCI: Avoid building empty drivers
> date:   10 weeks ago
> config: mips-randconfig-s032-20210517 (attached as .config)
> compiler: mipsel-linux-gcc (GCC) 9.3.0
> reproduce:
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # apt-get install sparse
>         # sparse version: v0.6.3-341-g8af24329-dirty
>         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e5a1fff9096ecd259dedcbbdc812aa90986a40e
>         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>         git fetch --no-tags linus master
>         git checkout 6e5a1fff9096ecd259dedcbbdc812aa90986a40e
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=mips 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> 
> sparse warnings: (new ones prefixed by >>)
>    command-line: note: in included file:
>    builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
>    builtin:0:0: sparse: this was the original definition
>    builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
>    builtin:0:0: sparse: this was the original definition
>    builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
>    builtin:0:0: sparse: this was the original definition
>    builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
>    builtin:0:0: sparse: this was the original definition
>    drivers/pci/controller/pci-xgene.c:510:26: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *bar_addr @@     got void [noderef] __iomem * @@
>    drivers/pci/controller/pci-xgene.c:510:26: sparse:     expected void *bar_addr
>    drivers/pci/controller/pci-xgene.c:510:26: sparse:     got void [noderef] __iomem *
> >> drivers/pci/controller/pci-xgene.c:511:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *mem @@     got void *bar_addr @@
>    drivers/pci/controller/pci-xgene.c:511:33: sparse:     expected void volatile [noderef] __iomem *mem
>    drivers/pci/controller/pci-xgene.c:511:33: sparse:     got void *bar_addr
> >> drivers/pci/controller/pci-xgene.c:512:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *mem @@     got void * @@
>    drivers/pci/controller/pci-xgene.c:512:58: sparse:     expected void volatile [noderef] __iomem *mem
>    drivers/pci/controller/pci-xgene.c:512:58: sparse:     got void *
> 
> vim +511 drivers/pci/controller/pci-xgene.c
> 
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  480  
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  481  static void xgene_pcie_setup_ib_reg(struct xgene_pcie_port *port,
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  482  				    struct resource_entry *entry,
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  483  				    u8 *ib_reg_mask)
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  484  {
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  485  	void __iomem *cfg_base = port->cfg_base;
> d963ab22ad32da drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  486  	struct device *dev = port->dev;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  487  	void *bar_addr;
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  488  	u32 pim_reg;
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  489  	u64 cpu_addr = entry->res->start;
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  490  	u64 pci_addr = cpu_addr - entry->offset;
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  491  	u64 size = resource_size(entry->res);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  492  	u64 mask = ~(size - 1) | EN_REG;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  493  	u32 flags = PCI_BASE_ADDRESS_MEM_TYPE_64;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  494  	u32 bar_low;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  495  	int region;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  496  
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  497  	region = xgene_pcie_select_ib_reg(ib_reg_mask, size);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  498  	if (region < 0) {
> d963ab22ad32da drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  499  		dev_warn(dev, "invalid pcie dma-range config\n");
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  500  		return;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  501  	}
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  502  
> 6dce5aa59e0bf2 drivers/pci/controller/pci-xgene.c Rob Herring    2019-10-28  503  	if (entry->res->flags & IORESOURCE_PREFETCH)
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  504  		flags |= PCI_BASE_ADDRESS_MEM_PREFETCH;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  505  
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  506  	bar_low = pcie_bar_low_val((u32)cpu_addr, flags);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  507  	switch (region) {
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  508  	case 0:
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  509  		xgene_pcie_set_ib_mask(port, BRIDGE_CFG_4, flags, size);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  510  		bar_addr = cfg_base + PCI_BASE_ADDRESS_0;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01 @511  		writel(bar_low, bar_addr);
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01 @512  		writel(upper_32_bits(cpu_addr), bar_addr + 0x4);
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  513  		pim_reg = PIM1_1L;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  514  		break;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  515  	case 1:
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  516  		xgene_pcie_writel(port, IBAR2, bar_low);
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  517  		xgene_pcie_writel(port, IR2MSK, lower_32_bits(mask));
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  518  		pim_reg = PIM2_1L;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  519  		break;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  520  	case 2:
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  521  		xgene_pcie_writel(port, IBAR3L, bar_low);
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  522  		xgene_pcie_writel(port, IBAR3L + 0x4, upper_32_bits(cpu_addr));
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  523  		xgene_pcie_writel(port, IR3MSKL, lower_32_bits(mask));
> 8e93c5132ca2e5 drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  524  		xgene_pcie_writel(port, IR3MSKL + 0x4, upper_32_bits(mask));
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  525  		pim_reg = PIM3_1L;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  526  		break;
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  527  	}
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  528  
> 4ecf6b0f83523f drivers/pci/host/pci-xgene.c       Bjorn Helgaas  2016-10-06  529  	xgene_pcie_setup_pims(port, pim_reg, pci_addr, ~(size - 1));
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  530  }
> 5f6b6ccdbe1cdf drivers/pci/host/pci-xgene.c       Tanmay Inamdar 2014-10-01  531  
> 
> :::::: The code at line 511 was first introduced by commit
> :::::: 5f6b6ccdbe1cdfa5aa4347ec5412509b8995db27 PCI: xgene: Add APM X-Gene PCIe driver
> 
> :::::: TO: Tanmay Inamdar <tinamdar@apm.com>
> :::::: CC: Bjorn Helgaas <bhelgaas@google.com>
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org


commit c89e93028d61 ("PCI: xgene: Annotate __iomem pointer")
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Mon May 17 12:07:00 2021 -0500

    PCI: xgene: Annotate __iomem pointer
    
    "bar_addr" is passed as the argument to writel(), which expects a
    "void __iomem *".  Annotate "bar_addr" correctly.  Resolves an sparse
    "incorrect type in argument 2 (different address spaces)" warning.
    
    Link: https://lore.kernel.org/r/202105171809.Tay9fImZ-lkp(a)intel.com
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c
index 7f503dd4ff81..1a412f5377fb 100644
--- a/drivers/pci/controller/pci-xgene.c
+++ b/drivers/pci/controller/pci-xgene.c
@@ -485,7 +485,7 @@ static void xgene_pcie_setup_ib_reg(struct xgene_pcie_port *port,
 {
 	void __iomem *cfg_base = port->cfg_base;
 	struct device *dev = port->dev;
-	void *bar_addr;
+	void __iomem *bar_addr;
 	u32 pim_reg;
 	u64 cpu_addr = entry->res->start;
 	u64 pci_addr = cpu_addr - entry->offset;

  reply	other threads:[~2021-05-17 17:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-17 10:35 drivers/pci/controller/pci-xgene.c:511:33: sparse: sparse: incorrect type in argument 2 (different address spaces) kernel test robot
2021-05-17 10:35 ` kernel test robot
2021-05-17 17:16 ` Bjorn Helgaas [this message]
2021-05-17 17:16   ` Bjorn Helgaas

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=20210517171615.GA23513@bjorn-Precision-5520 \
    --to=helgaas@kernel.org \
    --cc=arnd@arndb.de \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=rric@kernel.org \
    --cc=toan@os.amperecomputing.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.