* [rppt:memblock/iterators-cleanup/v3 17/17] arch/powerpc/kexec/file_load_64.c:145:2: error: implicit declaration of function 'for_each_memblock'; did you mean
@ 2020-08-09 18:48 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-08-09 18:48 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 9926 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git memblock/iterators-cleanup/v3
head: f0d593460d044672ca2ea065efc283e30dd23ef1
commit: f0d593460d044672ca2ea065efc283e30dd23ef1 [17/17] memblock: use separate iterators for memory and reserved regions
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-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
git checkout f0d593460d044672ca2ea065efc283e30dd23ef1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
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/kexec/file_load_64.c: In function 'get_crash_memory_ranges':
>> arch/powerpc/kexec/file_load_64.c:145:2: error: implicit declaration of function 'for_each_memblock'; did you mean 'for_each_mem_range'? [-Werror=implicit-function-declaration]
145 | for_each_memblock(memory, reg) {
| ^~~~~~~~~~~~~~~~~
| for_each_mem_range
>> arch/powerpc/kexec/file_load_64.c:145:20: error: 'memory' undeclared (first use in this function); did you mean 'memcpy'?
145 | for_each_memblock(memory, reg) {
| ^~~~~~
| memcpy
arch/powerpc/kexec/file_load_64.c:145:20: note: each undeclared identifier is reported only once for each function it appears in
arch/powerpc/kexec/file_load_64.c:145:32: error: expected ';' before '{' token
145 | for_each_memblock(memory, reg) {
| ^~
| ;
arch/powerpc/kexec/file_load_64.c: In function '__locate_mem_hole_bottom_up':
arch/powerpc/kexec/file_load_64.c:354:40: error: macro "for_each_mem_range" passed 8 arguments, but takes just 3
354 | MEMBLOCK_NONE, &start, &end, NULL) {
| ^
In file included from arch/powerpc/kexec/file_load_64.c:21:
include/linux/memblock.h:208: note: macro "for_each_mem_range" defined here
208 | #define for_each_mem_range(i, p_start, p_end) \
|
arch/powerpc/kexec/file_load_64.c:353:2: error: 'for_each_mem_range' undeclared (first use in this function); did you mean 'crash_mem_range'?
353 | for_each_mem_range(i, &memblock.memory, NULL, NUMA_NO_NODE,
| ^~~~~~~~~~~~~~~~~~
| crash_mem_range
arch/powerpc/kexec/file_load_64.c:353:20: error: expected ';' before '{' token
353 | for_each_mem_range(i, &memblock.memory, NULL, NUMA_NO_NODE,
| ^
| ;
354 | MEMBLOCK_NONE, &start, &end, NULL) {
| ~
arch/powerpc/kexec/file_load_64.c:351:6: error: unused variable 'i' [-Werror=unused-variable]
351 | u64 i;
| ^
arch/powerpc/kexec/file_load_64.c:350:21: error: unused variable 'end' [-Werror=unused-variable]
350 | phys_addr_t start, end;
| ^~~
arch/powerpc/kexec/file_load_64.c:350:14: error: unused variable 'start' [-Werror=unused-variable]
350 | phys_addr_t start, end;
| ^~~~~
arch/powerpc/kexec/file_load_64.c:349:6: error: unused variable 'ret' [-Werror=unused-variable]
349 | int ret = -EADDRNOTAVAIL;
| ^~~
arch/powerpc/kexec/file_load_64.c:385:1: error: no return statement in function returning non-void [-Werror=return-type]
385 | }
| ^
cc1: all warnings being treated as errors
vim +145 arch/powerpc/kexec/file_load_64.c
7c64e21a1c5a5b Hari Bathini 2020-07-29 130
cb350c1f1f867d Hari Bathini 2020-07-29 131 /**
cb350c1f1f867d Hari Bathini 2020-07-29 132 * get_crash_memory_ranges - Get crash memory ranges. This list includes
cb350c1f1f867d Hari Bathini 2020-07-29 133 * first/crashing kernel's memory regions that
cb350c1f1f867d Hari Bathini 2020-07-29 134 * would be exported via an elfcore.
cb350c1f1f867d Hari Bathini 2020-07-29 135 * @mem_ranges: Range list to add the memory ranges to.
cb350c1f1f867d Hari Bathini 2020-07-29 136 *
cb350c1f1f867d Hari Bathini 2020-07-29 137 * Returns 0 on success, negative errno on error.
cb350c1f1f867d Hari Bathini 2020-07-29 138 */
cb350c1f1f867d Hari Bathini 2020-07-29 139 static int get_crash_memory_ranges(struct crash_mem **mem_ranges)
cb350c1f1f867d Hari Bathini 2020-07-29 140 {
cb350c1f1f867d Hari Bathini 2020-07-29 141 struct memblock_region *reg;
cb350c1f1f867d Hari Bathini 2020-07-29 142 struct crash_mem *tmem;
cb350c1f1f867d Hari Bathini 2020-07-29 143 int ret;
cb350c1f1f867d Hari Bathini 2020-07-29 144
cb350c1f1f867d Hari Bathini 2020-07-29 @145 for_each_memblock(memory, reg) {
cb350c1f1f867d Hari Bathini 2020-07-29 146 u64 base, size;
cb350c1f1f867d Hari Bathini 2020-07-29 147
cb350c1f1f867d Hari Bathini 2020-07-29 148 base = (u64)reg->base;
cb350c1f1f867d Hari Bathini 2020-07-29 149 size = (u64)reg->size;
cb350c1f1f867d Hari Bathini 2020-07-29 150
cb350c1f1f867d Hari Bathini 2020-07-29 151 /* Skip backup memory region, which needs a separate entry */
cb350c1f1f867d Hari Bathini 2020-07-29 152 if (base == BACKUP_SRC_START) {
cb350c1f1f867d Hari Bathini 2020-07-29 153 if (size > BACKUP_SRC_SIZE) {
cb350c1f1f867d Hari Bathini 2020-07-29 154 base = BACKUP_SRC_END + 1;
cb350c1f1f867d Hari Bathini 2020-07-29 155 size -= BACKUP_SRC_SIZE;
cb350c1f1f867d Hari Bathini 2020-07-29 156 } else
cb350c1f1f867d Hari Bathini 2020-07-29 157 continue;
cb350c1f1f867d Hari Bathini 2020-07-29 158 }
cb350c1f1f867d Hari Bathini 2020-07-29 159
cb350c1f1f867d Hari Bathini 2020-07-29 160 ret = add_mem_range(mem_ranges, base, size);
cb350c1f1f867d Hari Bathini 2020-07-29 161 if (ret)
cb350c1f1f867d Hari Bathini 2020-07-29 162 goto out;
cb350c1f1f867d Hari Bathini 2020-07-29 163
cb350c1f1f867d Hari Bathini 2020-07-29 164 /* Try merging adjacent ranges before reallocation attempt */
cb350c1f1f867d Hari Bathini 2020-07-29 165 if ((*mem_ranges)->nr_ranges == (*mem_ranges)->max_nr_ranges)
cb350c1f1f867d Hari Bathini 2020-07-29 166 sort_memory_ranges(*mem_ranges, true);
cb350c1f1f867d Hari Bathini 2020-07-29 167 }
cb350c1f1f867d Hari Bathini 2020-07-29 168
cb350c1f1f867d Hari Bathini 2020-07-29 169 /* Reallocate memory ranges if there is no space to split ranges */
cb350c1f1f867d Hari Bathini 2020-07-29 170 tmem = *mem_ranges;
cb350c1f1f867d Hari Bathini 2020-07-29 171 if (tmem && (tmem->nr_ranges == tmem->max_nr_ranges)) {
cb350c1f1f867d Hari Bathini 2020-07-29 172 tmem = realloc_mem_ranges(mem_ranges);
cb350c1f1f867d Hari Bathini 2020-07-29 173 if (!tmem)
cb350c1f1f867d Hari Bathini 2020-07-29 174 goto out;
cb350c1f1f867d Hari Bathini 2020-07-29 175 }
cb350c1f1f867d Hari Bathini 2020-07-29 176
cb350c1f1f867d Hari Bathini 2020-07-29 177 /* Exclude crashkernel region */
cb350c1f1f867d Hari Bathini 2020-07-29 178 ret = crash_exclude_mem_range(tmem, crashk_res.start, crashk_res.end);
cb350c1f1f867d Hari Bathini 2020-07-29 179 if (ret)
cb350c1f1f867d Hari Bathini 2020-07-29 180 goto out;
cb350c1f1f867d Hari Bathini 2020-07-29 181
cb350c1f1f867d Hari Bathini 2020-07-29 182 /*
cb350c1f1f867d Hari Bathini 2020-07-29 183 * FIXME: For now, stay in parity with kexec-tools but if RTAS/OPAL
cb350c1f1f867d Hari Bathini 2020-07-29 184 * regions are exported to save their context at the time of
cb350c1f1f867d Hari Bathini 2020-07-29 185 * crash, they should actually be backed up just like the
cb350c1f1f867d Hari Bathini 2020-07-29 186 * first 64K bytes of memory.
cb350c1f1f867d Hari Bathini 2020-07-29 187 */
cb350c1f1f867d Hari Bathini 2020-07-29 188 ret = add_rtas_mem_range(mem_ranges);
cb350c1f1f867d Hari Bathini 2020-07-29 189 if (ret)
cb350c1f1f867d Hari Bathini 2020-07-29 190 goto out;
cb350c1f1f867d Hari Bathini 2020-07-29 191
cb350c1f1f867d Hari Bathini 2020-07-29 192 ret = add_opal_mem_range(mem_ranges);
cb350c1f1f867d Hari Bathini 2020-07-29 193 if (ret)
cb350c1f1f867d Hari Bathini 2020-07-29 194 goto out;
cb350c1f1f867d Hari Bathini 2020-07-29 195
cb350c1f1f867d Hari Bathini 2020-07-29 196 /* create a separate program header for the backup region */
cb350c1f1f867d Hari Bathini 2020-07-29 197 ret = add_mem_range(mem_ranges, BACKUP_SRC_START, BACKUP_SRC_SIZE);
cb350c1f1f867d Hari Bathini 2020-07-29 198 if (ret)
cb350c1f1f867d Hari Bathini 2020-07-29 199 goto out;
cb350c1f1f867d Hari Bathini 2020-07-29 200
cb350c1f1f867d Hari Bathini 2020-07-29 201 sort_memory_ranges(*mem_ranges, false);
cb350c1f1f867d Hari Bathini 2020-07-29 202 out:
cb350c1f1f867d Hari Bathini 2020-07-29 203 if (ret)
cb350c1f1f867d Hari Bathini 2020-07-29 204 pr_err("Failed to setup crash memory ranges\n");
cb350c1f1f867d Hari Bathini 2020-07-29 205 return ret;
cb350c1f1f867d Hari Bathini 2020-07-29 206 }
cb350c1f1f867d Hari Bathini 2020-07-29 207
:::::: The code at line 145 was first introduced by commit
:::::: cb350c1f1f867db16725f1bb06be033ece19e998 powerpc/kexec_file: Prepare elfcore header for crashing kernel
:::::: TO: Hari Bathini <hbathini@linux.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>
---
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: 26325 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-08-09 18:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-09 18:48 [rppt:memblock/iterators-cleanup/v3 17/17] arch/powerpc/kexec/file_load_64.c:145:2: error: implicit declaration of function 'for_each_memblock'; did you mean 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.