All of lore.kernel.org
 help / color / mirror / Atom feed
* [rppt:meminit/descending-nodes/v1 2/3] mm/page_alloc.c:6511:2: error: void function 'init_unavailable_range' should not return a value
@ 2021-06-23 11:44 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-06-23 11:44 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git meminit/descending-nodes/v1
head:   4360e9f3bf49a500417f73e62a133567fdf9842e
commit: b3e781793b0c9f7c2ae41a9fe3d6dac8a7e53e06 [2/3] dev: fix memmap init for descending nodes
config: powerpc64-randconfig-r032-20210622 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project b259740801d3515810ecc15bf0c24b0d476a1608)
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
        # install powerpc64 cross compiling tool for clang build
        # apt-get install binutils-powerpc64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git/commit/?id=b3e781793b0c9f7c2ae41a9fe3d6dac8a7e53e06
        git remote add rppt https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git
        git fetch --no-tags rppt meminit/descending-nodes/v1
        git checkout b3e781793b0c9f7c2ae41a9fe3d6dac8a7e53e06
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64 

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 >>):

   In file included from include/linux/hardirq.h:11:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:619:
   arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:44:1: note: expanded from here
   __do_insw
   ^
   arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw'
   #define __do_insw(p, b, n)      readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
                                          ~~~~~~~~~~~~~~~~~~~~~^
   In file included from mm/page_alloc.c:20:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:619:
   arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:48:1: note: expanded from here
   __do_insl
   ^
   arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl'
   #define __do_insl(p, b, n)      readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
                                          ~~~~~~~~~~~~~~~~~~~~~^
   In file included from mm/page_alloc.c:20:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:619:
   arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:52:1: note: expanded from here
   __do_outsb
   ^
   arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb'
   #define __do_outsb(p, b, n)     writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
   In file included from mm/page_alloc.c:20:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:619:
   arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:56:1: note: expanded from here
   __do_outsw
   ^
   arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw'
   #define __do_outsw(p, b, n)     writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
   In file included from mm/page_alloc.c:20:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:619:
   arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:60:1: note: expanded from here
   __do_outsl
   ^
   arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl'
   #define __do_outsl(p, b, n)     writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
   mm/page_alloc.c:3651:15: warning: no previous prototype for function 'should_fail_alloc_page' [-Wmissing-prototypes]
   noinline bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
                 ^
   mm/page_alloc.c:3651:10: note: declare 'static' if the function is not intended to be used outside of this translation unit
   noinline bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
            ^
            static 
>> mm/page_alloc.c:6511:2: error: void function 'init_unavailable_range' should not return a value [-Wreturn-type]
           return 0;
           ^      ~
   mm/page_alloc.c:6545:12: warning: variable 'zone_id' set but not used [-Wunused-but-set-variable]
           int i, j, zone_id, nid;
                     ^
   9 warnings and 1 error generated.


vim +/init_unavailable_range +6511 mm/page_alloc.c

^1da177e4c3f41 Linus Torvalds 2005-04-16  6459  
0740a50b9baa44 Mike Rapoport  2021-03-12  6460  #if !defined(CONFIG_FLAT_NODE_MEM_MAP)
0740a50b9baa44 Mike Rapoport  2021-03-12  6461  /*
0740a50b9baa44 Mike Rapoport  2021-03-12  6462   * Only struct pages that correspond to ranges defined by memblock.memory
0740a50b9baa44 Mike Rapoport  2021-03-12  6463   * are zeroed and initialized by going through __init_single_page() during
b3e781793b0c9f Mike Rapoport  2021-06-23  6464   * memmap_init_zone_range().
0740a50b9baa44 Mike Rapoport  2021-03-12  6465   *
0740a50b9baa44 Mike Rapoport  2021-03-12  6466   * But, there could be struct pages that correspond to holes in
0740a50b9baa44 Mike Rapoport  2021-03-12  6467   * memblock.memory. This can happen because of the following reasons:
0740a50b9baa44 Mike Rapoport  2021-03-12  6468   * - physical memory bank size is not necessarily the exact multiple of the
0740a50b9baa44 Mike Rapoport  2021-03-12  6469   *   arbitrary section size
0740a50b9baa44 Mike Rapoport  2021-03-12  6470   * - early reserved memory may not be listed in memblock.memory
0740a50b9baa44 Mike Rapoport  2021-03-12  6471   * - memory layouts defined with memmap= kernel parameter may not align
0740a50b9baa44 Mike Rapoport  2021-03-12  6472   *   nicely with memmap sections
0740a50b9baa44 Mike Rapoport  2021-03-12  6473   *
0740a50b9baa44 Mike Rapoport  2021-03-12  6474   * Explicitly initialize those struct pages so that:
0740a50b9baa44 Mike Rapoport  2021-03-12  6475   * - PG_Reserved is set
0740a50b9baa44 Mike Rapoport  2021-03-12  6476   * - zone and node links point to zone and node that span the page if the
0740a50b9baa44 Mike Rapoport  2021-03-12  6477   *   hole is in the middle of a zone
0740a50b9baa44 Mike Rapoport  2021-03-12  6478   * - zone and node links point to adjacent zone/node if the hole falls on
0740a50b9baa44 Mike Rapoport  2021-03-12  6479   *   the zone boundary; the pages in such holes will be prepended to the
0740a50b9baa44 Mike Rapoport  2021-03-12  6480   *   zone/node above the hole except for the trailing pages in the last
0740a50b9baa44 Mike Rapoport  2021-03-12  6481   *   section that will be appended to the zone/node below.
0740a50b9baa44 Mike Rapoport  2021-03-12  6482   */
b3e781793b0c9f Mike Rapoport  2021-06-23  6483  static void __init init_unavailable_range(unsigned long spfn,
0740a50b9baa44 Mike Rapoport  2021-03-12  6484  					  unsigned long epfn,
0740a50b9baa44 Mike Rapoport  2021-03-12  6485  					  int zone, int node)
0740a50b9baa44 Mike Rapoport  2021-03-12  6486  {
0740a50b9baa44 Mike Rapoport  2021-03-12  6487  	unsigned long pfn;
0740a50b9baa44 Mike Rapoport  2021-03-12  6488  	u64 pgcnt = 0;
0740a50b9baa44 Mike Rapoport  2021-03-12  6489  
b3e781793b0c9f Mike Rapoport  2021-06-23  6490  	pr_info("init_unavailable_range: node: %d zone: %s: %lx - %lx\n", node, zone_names[zone], spfn, epfn);
b3e781793b0c9f Mike Rapoport  2021-06-23  6491  
0740a50b9baa44 Mike Rapoport  2021-03-12  6492  	for (pfn = spfn; pfn < epfn; pfn++) {
0740a50b9baa44 Mike Rapoport  2021-03-12  6493  		if (!pfn_valid(ALIGN_DOWN(pfn, pageblock_nr_pages))) {
0740a50b9baa44 Mike Rapoport  2021-03-12  6494  			pfn = ALIGN_DOWN(pfn, pageblock_nr_pages)
0740a50b9baa44 Mike Rapoport  2021-03-12  6495  				+ pageblock_nr_pages - 1;
0740a50b9baa44 Mike Rapoport  2021-03-12  6496  			continue;
0740a50b9baa44 Mike Rapoport  2021-03-12  6497  		}
0740a50b9baa44 Mike Rapoport  2021-03-12  6498  		__init_single_page(pfn_to_page(pfn), pfn, zone, node);
0740a50b9baa44 Mike Rapoport  2021-03-12  6499  		__SetPageReserved(pfn_to_page(pfn));
0740a50b9baa44 Mike Rapoport  2021-03-12  6500  		pgcnt++;
0740a50b9baa44 Mike Rapoport  2021-03-12  6501  	}
0740a50b9baa44 Mike Rapoport  2021-03-12  6502  
b3e781793b0c9f Mike Rapoport  2021-06-23  6503  	pr_info("On node %d, zone %s: %lld pages in unavailable ranges",
b3e781793b0c9f Mike Rapoport  2021-06-23  6504  		node, zone_names[zone], pgcnt);
0740a50b9baa44 Mike Rapoport  2021-03-12  6505  }
0740a50b9baa44 Mike Rapoport  2021-03-12  6506  #else
b3e781793b0c9f Mike Rapoport  2021-06-23  6507  static inline void init_unavailable_range(unsigned long spfn,
b3e781793b0c9f Mike Rapoport  2021-06-23  6508  					  unsigned long epfn,
0740a50b9baa44 Mike Rapoport  2021-03-12  6509  					  int zone, int node)
0740a50b9baa44 Mike Rapoport  2021-03-12  6510  {
0740a50b9baa44 Mike Rapoport  2021-03-12 @6511  	return 0;
0740a50b9baa44 Mike Rapoport  2021-03-12  6512  }
0740a50b9baa44 Mike Rapoport  2021-03-12  6513  #endif
0740a50b9baa44 Mike Rapoport  2021-03-12  6514  

:::::: The code@line 6511 was first introduced by commit
:::::: 0740a50b9baa4472cfb12442df4b39e2712a64a4 mm/page_alloc.c: refactor initialization of struct page for holes in memory layout

:::::: TO: Mike Rapoport <rppt@linux.ibm.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.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: 26580 bytes --]

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

only message in thread, other threads:[~2021-06-23 11:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-23 11:44 [rppt:meminit/descending-nodes/v1 2/3] mm/page_alloc.c:6511:2: error: void function 'init_unavailable_range' should not return a value 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.