All of lore.kernel.org
 help / color / mirror / Atom feed
* [chrome-os:chromeos-5.4 4/30] arch/powerpc/kernel/pci-common.c:737:38: error: 'struct of_pci_range' has no member named 'pci_space'
@ 2021-10-25 22:19 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-10-25 22:19 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-5.4
head:   b9a906acd1c7ee3c572148e5f5410b75bea3296a
commit: c07eb9cabd50cb22efb6f60ef018521e6d4c5d5f [4/30] UPSTREAM: of: Drop struct of_pci_range.pci_space field
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel
        git fetch --no-tags chrome-os chromeos-5.4
        git checkout c07eb9cabd50cb22efb6f60ef018521e6d4c5d5f
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash arch/powerpc/kernel/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   arch/powerpc/kernel/pci-common.c: In function 'pci_process_bridge_OF_ranges':
>> arch/powerpc/kernel/pci-common.c:737:38: error: 'struct of_pci_range' has no member named 'pci_space'
     737 |                                (range.pci_space & 0x40000000) ?
         |                                      ^


vim +737 arch/powerpc/kernel/pci-common.c

13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  643  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  644  /**
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  645   * pci_process_bridge_OF_ranges - Parse PCI bridge resources from device tree
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  646   * @hose: newly allocated pci_controller to be setup
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  647   * @dev: device node of the host bridge
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  648   * @primary: set if primary bus (32 bits only, soon to be deprecated)
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  649   *
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  650   * This function will parse the "ranges" property of a PCI host bridge device
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  651   * node and setup the resource mapping of a pci controller based on its
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  652   * content.
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  653   *
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  654   * Life would be boring if it wasn't for a few issues that we have to deal
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  655   * with here:
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  656   *
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  657   *   - We can only cope with one IO space range and up to 3 Memory space
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  658   *     ranges. However, some machines (thanks Apple !) tend to split their
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  659   *     space into lots of small contiguous ranges. So we have to coalesce.
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  660   *
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  661   *   - Some busses have IO space not starting at 0, which causes trouble with
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  662   *     the way we do our IO resource renumbering. The code somewhat deals with
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  663   *     it for 64 bits but I would expect problems on 32 bits.
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  664   *
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  665   *   - Some 32 bits platforms such as 4xx can have physical space larger than
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  666   *     32 bits so we need to use 64 bits values for the parsing
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  667   */
cad5cef62a5a0c Greg Kroah-Hartman     2012-12-21  668  void pci_process_bridge_OF_ranges(struct pci_controller *hose,
cad5cef62a5a0c Greg Kroah-Hartman     2012-12-21  669  				  struct device_node *dev, int primary)
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  670  {
858957ab1e3a7e Kevin Hao              2013-05-16  671  	int memno = 0;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  672  	struct resource *res;
654837e8fe8d1d Andrew Murray          2014-02-25  673  	struct of_pci_range range;
654837e8fe8d1d Andrew Murray          2014-02-25  674  	struct of_pci_range_parser parser;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  675  
b7c670d673d118 Rob Herring            2017-08-21  676  	printk(KERN_INFO "PCI host bridge %pOF %s ranges:\n",
b7c670d673d118 Rob Herring            2017-08-21  677  	       dev, primary ? "(primary)" : "");
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  678  
654837e8fe8d1d Andrew Murray          2014-02-25  679  	/* Check for ranges property */
654837e8fe8d1d Andrew Murray          2014-02-25  680  	if (of_pci_range_parser_init(&parser, dev))
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  681  		return;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  682  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  683  	/* Parse it */
654837e8fe8d1d Andrew Murray          2014-02-25  684  	for_each_of_pci_range(&parser, &range) {
e9f82cb75096ae Benjamin Herrenschmidt 2008-10-14  685  		/* If we failed translation or got a zero-sized region
e9f82cb75096ae Benjamin Herrenschmidt 2008-10-14  686  		 * (some FW try to feed us with non sensical zero sized regions
e9f82cb75096ae Benjamin Herrenschmidt 2008-10-14  687  		 * such as power3 which look like some kind of attempt at exposing
e9f82cb75096ae Benjamin Herrenschmidt 2008-10-14  688  		 * the VGA memory hole)
e9f82cb75096ae Benjamin Herrenschmidt 2008-10-14  689  		 */
654837e8fe8d1d Andrew Murray          2014-02-25  690  		if (range.cpu_addr == OF_BAD_ADDR || range.size == 0)
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  691  			continue;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  692  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  693  		/* Act based on address space type */
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  694  		res = NULL;
654837e8fe8d1d Andrew Murray          2014-02-25  695  		switch (range.flags & IORESOURCE_TYPE_BITS) {
654837e8fe8d1d Andrew Murray          2014-02-25  696  		case IORESOURCE_IO:
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  697  			printk(KERN_INFO
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  698  			       "  IO 0x%016llx..0x%016llx -> 0x%016llx\n",
654837e8fe8d1d Andrew Murray          2014-02-25  699  			       range.cpu_addr, range.cpu_addr + range.size - 1,
654837e8fe8d1d Andrew Murray          2014-02-25  700  			       range.pci_addr);
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  701  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  702  			/* We support only one IO range */
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  703  			if (hose->pci_io_size) {
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  704  				printk(KERN_INFO
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  705  				       " \\--> Skipped (too many) !\n");
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  706  				continue;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  707  			}
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  708  #ifdef CONFIG_PPC32
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  709  			/* On 32 bits, limit I/O space to 16MB */
654837e8fe8d1d Andrew Murray          2014-02-25  710  			if (range.size > 0x01000000)
654837e8fe8d1d Andrew Murray          2014-02-25  711  				range.size = 0x01000000;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  712  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  713  			/* 32 bits needs to map IOs here */
654837e8fe8d1d Andrew Murray          2014-02-25  714  			hose->io_base_virt = ioremap(range.cpu_addr,
654837e8fe8d1d Andrew Murray          2014-02-25  715  						range.size);
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  716  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  717  			/* Expect trouble if pci_addr is not 0 */
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  718  			if (primary)
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  719  				isa_io_base =
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  720  					(unsigned long)hose->io_base_virt;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  721  #endif /* CONFIG_PPC32 */
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  722  			/* pci_io_size and io_base_phys always represent IO
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  723  			 * space starting at 0 so we factor in pci_addr
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  724  			 */
654837e8fe8d1d Andrew Murray          2014-02-25  725  			hose->pci_io_size = range.pci_addr + range.size;
654837e8fe8d1d Andrew Murray          2014-02-25  726  			hose->io_base_phys = range.cpu_addr - range.pci_addr;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  727  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  728  			/* Build resource */
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  729  			res = &hose->io_resource;
654837e8fe8d1d Andrew Murray          2014-02-25  730  			range.cpu_addr = range.pci_addr;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  731  			break;
654837e8fe8d1d Andrew Murray          2014-02-25  732  		case IORESOURCE_MEM:
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  733  			printk(KERN_INFO
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  734  			       " MEM 0x%016llx..0x%016llx -> 0x%016llx %s\n",
654837e8fe8d1d Andrew Murray          2014-02-25  735  			       range.cpu_addr, range.cpu_addr + range.size - 1,
654837e8fe8d1d Andrew Murray          2014-02-25  736  			       range.pci_addr,
654837e8fe8d1d Andrew Murray          2014-02-25 @737  			       (range.pci_space & 0x40000000) ?
654837e8fe8d1d Andrew Murray          2014-02-25  738  			       "Prefetch" : "");
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  739  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  740  			/* We support only 3 memory ranges */
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  741  			if (memno >= 3) {
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  742  				printk(KERN_INFO
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  743  				       " \\--> Skipped (too many) !\n");
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  744  				continue;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  745  			}
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  746  			/* Handles ISA memory hole space here */
654837e8fe8d1d Andrew Murray          2014-02-25  747  			if (range.pci_addr == 0) {
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  748  				if (primary || isa_mem_base == 0)
654837e8fe8d1d Andrew Murray          2014-02-25  749  					isa_mem_base = range.cpu_addr;
654837e8fe8d1d Andrew Murray          2014-02-25  750  				hose->isa_mem_phys = range.cpu_addr;
654837e8fe8d1d Andrew Murray          2014-02-25  751  				hose->isa_mem_size = range.size;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  752  			}
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  753  
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  754  			/* Build resource */
654837e8fe8d1d Andrew Murray          2014-02-25  755  			hose->mem_offset[memno] = range.cpu_addr -
654837e8fe8d1d Andrew Murray          2014-02-25  756  							range.pci_addr;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  757  			res = &hose->mem_resources[memno++];
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  758  			break;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  759  		}
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  760  		if (res != NULL) {
aeba3731b15018 Michael Ellerman       2014-10-16  761  			res->name = dev->full_name;
aeba3731b15018 Michael Ellerman       2014-10-16  762  			res->flags = range.flags;
aeba3731b15018 Michael Ellerman       2014-10-16  763  			res->start = range.cpu_addr;
aeba3731b15018 Michael Ellerman       2014-10-16  764  			res->end = range.cpu_addr + range.size - 1;
aeba3731b15018 Michael Ellerman       2014-10-16  765  			res->parent = res->child = res->sibling = NULL;
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  766  		}
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  767  	}
13dccb9e65dc0f Benjamin Herrenschmidt 2007-12-11  768  }
fa462f2d75e243 Benjamin Herrenschmidt 2007-12-20  769  

:::::: The code at line 737 was first introduced by commit
:::::: 654837e8fe8d1d302803458e3a100aa78e0d90de powerpc/pci: Use of_pci_range_parser helper in pci_process_bridge_OF_ranges

:::::: TO: Andrew Murray <amurray@embedded-bits.co.uk>
:::::: CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 63056 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-10-25 22:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-25 22:19 [chrome-os:chromeos-5.4 4/30] arch/powerpc/kernel/pci-common.c:737:38: error: 'struct of_pci_range' has no member named 'pci_space' kernel test robot

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.