Re: [PATCH] of/fdt: Fix #ifdef dependency of early flattree declarations

From: kbuild test robot
Date: Wed Jan 03 2018 - 20:15:35 EST


Hi Geert,

I love your patch! Yet something to improve:

[auto build test ERROR on robh/for-next]
[also build test ERROR on v4.15-rc6 next-20180103]
[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/Geert-Uytterhoeven/of-fdt-Fix-ifdef-dependency-of-early-flattree-declarations/20180104-062259
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: cris-etrax-100lx_v2_defconfig (attached as .config)
compiler: cris-linux-gcc (GCC) 7.2.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
make.cross ARCH=cris

All errors (new ones prefixed by >>):

arch/cris/kernel/setup.c: In function 'setup_arch':
>> arch/cris/kernel/setup.c:151:2: error: implicit declaration of function 'unflatten_and_copy_device_tree' [-Werror=implicit-function-declaration]
unflatten_and_copy_device_tree();
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +/unflatten_and_copy_device_tree +151 arch/cris/kernel/setup.c

a9f75ac5 Rabin Vincent 2015-02-08 73
^1da177e Linus Torvalds 2005-04-16 74 /* register an initial console printing routine for printk's */
^1da177e Linus Torvalds 2005-04-16 75
^1da177e Linus Torvalds 2005-04-16 76 init_etrax_debug();
^1da177e Linus Torvalds 2005-04-16 77
^1da177e Linus Torvalds 2005-04-16 78 /* we should really poll for DRAM size! */
^1da177e Linus Torvalds 2005-04-16 79
^1da177e Linus Torvalds 2005-04-16 80 high_memory = &dram_end;
^1da177e Linus Torvalds 2005-04-16 81
^1da177e Linus Torvalds 2005-04-16 82 if(romfs_in_flash || !romfs_length) {
^1da177e Linus Torvalds 2005-04-16 83 /* if we have the romfs in flash, or if there is no rom filesystem,
^1da177e Linus Torvalds 2005-04-16 84 * our free area starts directly after the BSS
^1da177e Linus Torvalds 2005-04-16 85 */
^1da177e Linus Torvalds 2005-04-16 86 memory_start = (unsigned long) &_end;
^1da177e Linus Torvalds 2005-04-16 87 } else {
^1da177e Linus Torvalds 2005-04-16 88 /* otherwise the free area starts after the ROM filesystem */
^1da177e Linus Torvalds 2005-04-16 89 printk("ROM fs in RAM, size %lu bytes\n", romfs_length);
^1da177e Linus Torvalds 2005-04-16 90 memory_start = romfs_start + romfs_length;
^1da177e Linus Torvalds 2005-04-16 91 }
^1da177e Linus Torvalds 2005-04-16 92
^1da177e Linus Torvalds 2005-04-16 93 /* process 1's initial memory region is the kernel code/data */
^1da177e Linus Torvalds 2005-04-16 94
^1da177e Linus Torvalds 2005-04-16 95 init_mm.start_code = (unsigned long) &text_start;
^1da177e Linus Torvalds 2005-04-16 96 init_mm.end_code = (unsigned long) &_etext;
^1da177e Linus Torvalds 2005-04-16 97 init_mm.end_data = (unsigned long) &_edata;
^1da177e Linus Torvalds 2005-04-16 98 init_mm.brk = (unsigned long) &_end;
^1da177e Linus Torvalds 2005-04-16 99
^1da177e Linus Torvalds 2005-04-16 100 /* min_low_pfn points to the start of DRAM, start_pfn points
^1da177e Linus Torvalds 2005-04-16 101 * to the first DRAM pages after the kernel, and max_low_pfn
^1da177e Linus Torvalds 2005-04-16 102 * to the end of DRAM.
^1da177e Linus Torvalds 2005-04-16 103 */
^1da177e Linus Torvalds 2005-04-16 104
^1da177e Linus Torvalds 2005-04-16 105 /*
^1da177e Linus Torvalds 2005-04-16 106 * partially used pages are not usable - thus
^1da177e Linus Torvalds 2005-04-16 107 * we are rounding upwards:
^1da177e Linus Torvalds 2005-04-16 108 */
^1da177e Linus Torvalds 2005-04-16 109
^1da177e Linus Torvalds 2005-04-16 110 start_pfn = PFN_UP(memory_start); /* usually c0000000 + kernel + romfs */
^1da177e Linus Torvalds 2005-04-16 111 max_pfn = PFN_DOWN((unsigned long)high_memory); /* usually c0000000 + dram size */
^1da177e Linus Torvalds 2005-04-16 112
^1da177e Linus Torvalds 2005-04-16 113 /*
^1da177e Linus Torvalds 2005-04-16 114 * Initialize the boot-time allocator (start, end)
^1da177e Linus Torvalds 2005-04-16 115 *
^1da177e Linus Torvalds 2005-04-16 116 * We give it access to all our DRAM, but we could as well just have
^1da177e Linus Torvalds 2005-04-16 117 * given it a small slice. No point in doing that though, unless we
^1da177e Linus Torvalds 2005-04-16 118 * have non-contiguous memory and want the boot-stuff to be in, say,
^1da177e Linus Torvalds 2005-04-16 119 * the smallest area.
^1da177e Linus Torvalds 2005-04-16 120 *
^1da177e Linus Torvalds 2005-04-16 121 * It will put a bitmap of the allocated pages in the beginning
^1da177e Linus Torvalds 2005-04-16 122 * of the range we give it, but it won't mark the bitmaps pages
^1da177e Linus Torvalds 2005-04-16 123 * as reserved. We have to do that ourselves below.
^1da177e Linus Torvalds 2005-04-16 124 *
^1da177e Linus Torvalds 2005-04-16 125 * We need to use init_bootmem_node instead of init_bootmem
^1da177e Linus Torvalds 2005-04-16 126 * because our map starts at a quite high address (min_low_pfn).
^1da177e Linus Torvalds 2005-04-16 127 */
^1da177e Linus Torvalds 2005-04-16 128
^1da177e Linus Torvalds 2005-04-16 129 max_low_pfn = max_pfn;
^1da177e Linus Torvalds 2005-04-16 130 min_low_pfn = PAGE_OFFSET >> PAGE_SHIFT;
^1da177e Linus Torvalds 2005-04-16 131
^1da177e Linus Torvalds 2005-04-16 132 bootmap_size = init_bootmem_node(NODE_DATA(0), start_pfn,
^1da177e Linus Torvalds 2005-04-16 133 min_low_pfn,
^1da177e Linus Torvalds 2005-04-16 134 max_low_pfn);
^1da177e Linus Torvalds 2005-04-16 135
^1da177e Linus Torvalds 2005-04-16 136 /* And free all memory not belonging to the kernel (addr, size) */
^1da177e Linus Torvalds 2005-04-16 137
^1da177e Linus Torvalds 2005-04-16 138 free_bootmem(PFN_PHYS(start_pfn), PFN_PHYS(max_pfn - start_pfn));
^1da177e Linus Torvalds 2005-04-16 139
^1da177e Linus Torvalds 2005-04-16 140 /*
^1da177e Linus Torvalds 2005-04-16 141 * Reserve the bootmem bitmap itself as well. We do this in two
^1da177e Linus Torvalds 2005-04-16 142 * steps (first step was init_bootmem()) because this catches
^1da177e Linus Torvalds 2005-04-16 143 * the (very unlikely) case of us accidentally initializing the
^1da177e Linus Torvalds 2005-04-16 144 * bootmem allocator with an invalid RAM area.
^1da177e Linus Torvalds 2005-04-16 145 *
^1da177e Linus Torvalds 2005-04-16 146 * Arguments are start, size
^1da177e Linus Torvalds 2005-04-16 147 */
^1da177e Linus Torvalds 2005-04-16 148
72a7fe39 Bernhard Walle 2008-02-07 149 reserve_bootmem(PFN_PHYS(start_pfn), bootmap_size, BOOTMEM_DEFAULT);
^1da177e Linus Torvalds 2005-04-16 150
a9f75ac5 Rabin Vincent 2015-02-08 @151 unflatten_and_copy_device_tree();
a9f75ac5 Rabin Vincent 2015-02-08 152
^1da177e Linus Torvalds 2005-04-16 153 /* paging_init() sets up the MMU and marks all pages as reserved */
^1da177e Linus Torvalds 2005-04-16 154
^1da177e Linus Torvalds 2005-04-16 155 paging_init();
^1da177e Linus Torvalds 2005-04-16 156
7cf32cad Mikael Starvik 2005-07-27 157 *cmdline_p = cris_command_line;
^1da177e Linus Torvalds 2005-04-16 158

:::::: The code at line 151 was first introduced by commit
:::::: a9f75ac5a24cb94c2373daa3d73f90d22cf5d94b CRISv32: add device tree support

:::::: TO: Rabin Vincent <rabin@xxxxxx>
:::::: CC: Jesper Nilsson <jespern@xxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip