tree:
https://github.com/intel/linux-intel-lts.git 4.19/android_r
head: 072f407465e8e25a3c2c22590e1ab72ccf335151
commit: 36960edcc32ce26bcf470e6129c4dc26a44e97ca [20730/22631] UPSTREAM: parisc: Switch
from DISCONTIGMEM to SPARSEMEM
config: parisc-randconfig-r013-20210409 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.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
#
https://github.com/intel/linux-intel-lts/commit/36960edcc32ce26bcf470e612...
git remote add intel-linux-intel-lts
https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-linux-intel-lts 4.19/android_r
git checkout 36960edcc32ce26bcf470e6129c4dc26a44e97ca
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
arch/parisc/mm/init.c: In function 'pagetable_init':
arch/parisc/mm/init.c:655:17: warning: variable 'end_paddr' set but not used
[-Wunused-but-set-variable]
655 | unsigned long end_paddr;
| ^~~~~~~~~
arch/parisc/mm/init.c: In function 'paging_init':
> arch/parisc/mm/init.c:734:2: error: implicit declaration of
function 'memblocks_present'; did you mean 'memblock_reserve'?
[-Werror=implicit-function-declaration]
734 | memblocks_present();
| ^~~~~~~~~~~~~~~~~
| memblock_reserve
cc1: some warnings being treated as errors
vim +734 arch/parisc/mm/init.c
638
639 /*
640 * pagetable_init() sets up the page tables
641 *
642 * Note that gateway_init() places the Linux gateway page at page 0.
643 * Since gateway pages cannot be dereferenced this has the desirable
644 * side effect of trapping those pesky NULL-reference errors in the
645 * kernel.
646 */
647 static void __init pagetable_init(void)
648 {
649 int range;
650
651 /* Map each physical memory range to its kernel vaddr */
652
653 for (range = 0; range < npmem_ranges; range++) {
654 unsigned long start_paddr;
655 unsigned long end_paddr;
656 unsigned long size;
657
658 start_paddr = pmem_ranges[range].start_pfn << PAGE_SHIFT;
659 size = pmem_ranges[range].pages << PAGE_SHIFT;
660 end_paddr = start_paddr + size;
661
662 map_pages((unsigned long)__va(start_paddr), start_paddr,
663 size, PAGE_KERNEL, 0);
664 }
665
666 #ifdef CONFIG_BLK_DEV_INITRD
667 if (initrd_end && initrd_end > mem_limit) {
668 printk(KERN_INFO "initrd: mapping %08lx-%08lx\n", initrd_start,
initrd_end);
669 map_pages(initrd_start, __pa(initrd_start),
670 initrd_end - initrd_start, PAGE_KERNEL, 0);
671 }
672 #endif
673
674 empty_zero_page = get_memblock(PAGE_SIZE);
675 }
676
677 static void __init gateway_init(void)
678 {
679 unsigned long linux_gateway_page_addr;
680 /* FIXME: This is 'const' in order to trick the compiler
681 into not treating it as DP-relative data. */
682 extern void * const linux_gateway_page;
683
684 linux_gateway_page_addr = LINUX_GATEWAY_ADDR & PAGE_MASK;
685
686 /*
687 * Setup Linux Gateway page.
688 *
689 * The Linux gateway page will reside in kernel space (on virtual
690 * page 0), so it doesn't need to be aliased into user space.
691 */
692
693 map_pages(linux_gateway_page_addr, __pa(&linux_gateway_page),
694 PAGE_SIZE, PAGE_GATEWAY, 1);
695 }
696
697 static void __init parisc_bootmem_free(void)
698 {
699 unsigned long zones_size[MAX_NR_ZONES] = { 0, };
700 unsigned long holes_size[MAX_NR_ZONES] = { 0, };
701 unsigned long mem_start_pfn = ~0UL, mem_end_pfn = 0, mem_size_pfn = 0;
702 int i;
703
704 for (i = 0; i < npmem_ranges; i++) {
705 unsigned long start = pmem_ranges[i].start_pfn;
706 unsigned long size = pmem_ranges[i].pages;
707 unsigned long end = start + size;
708
709 if (mem_start_pfn > start)
710 mem_start_pfn = start;
711 if (mem_end_pfn < end)
712 mem_end_pfn = end;
713 mem_size_pfn += size;
714 }
715
716 zones_size[0] = mem_end_pfn - mem_start_pfn;
717 holes_size[0] = zones_size[0] - mem_size_pfn;
718
719 free_area_init_node(0, zones_size, mem_start_pfn, holes_size);
720 }
721
722 void __init paging_init(void)
723 {
724 setup_bootmem();
725 pagetable_init();
726 gateway_init();
727 flush_cache_all_local(); /* start with known state */
728 flush_tlb_all_local(NULL);
729
730 /*
731 * Mark all memblocks as present for sparsemem using
732 * memory_present() and then initialize sparsemem.
733 */
734 memblocks_present();
735 sparse_init();
736 parisc_bootmem_free();
737 }
738
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org