arch/mips/ralink/mt7621.c:123:22: warning: '__builtin_memcmp' reading between 1 and 4 bytes from a region of size 0
From: kernel test robot
Date: Wed Jan 19 2022 - 02:21:32 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 99613159ad749543621da8238acf1a122880144e
commit: 139c949f7f0ac0dd1c0da132675be80e6d76c65d MIPS: ralink: mt7621: add memory detection support
date: 10 months ago
config: mips-randconfig-r036-20220119 (https://download.01.org/0day-ci/archive/20220119/202201191557.OISJHNMi-lkp@xxxxxxxxx/config)
compiler: mipsel-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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=139c949f7f0ac0dd1c0da132675be80e6d76c65d
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 139c949f7f0ac0dd1c0da132675be80e6d76c65d
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash arch/mips/ralink/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
In file included from include/linux/kernel.h:10,
from arch/mips/ralink/mt7621.c:8:
arch/mips/ralink/mt7621.c: In function 'mt7621_memory_detect':
>> arch/mips/ralink/mt7621.c:123:22: warning: '__builtin_memcmp' reading between 1 and 4 bytes from a region of size 0 [-Wstringop-overread]
123 | if (!__builtin_memcmp(dm, dm + size, sizeof(detect_magic)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
arch/mips/ralink/mt7621.c:123:17: note: in expansion of macro 'if'
123 | if (!__builtin_memcmp(dm, dm + size, sizeof(detect_magic)))
| ^~
arch/mips/ralink/mt7621.c:54:14: note: at offset 33554432 into source object 'detect_magic' of size 4
54 | static void *detect_magic __initdata = detect_memory_region;
| ^~~~~~~~~~~~
In file included from include/linux/kernel.h:10,
from arch/mips/ralink/mt7621.c:8:
arch/mips/ralink/mt7621.c:129:13: warning: '__builtin_memcmp' reading between 1 and 4 bytes from a region of size 0 [-Wstringop-overread]
129 | __builtin_memcmp(dm, dm + size, sizeof(detect_magic))) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:69:10: note: in definition of macro '__trace_if_value'
69 | (cond) ? \
| ^~~~
include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
56 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
| ^~~~~~~~~~~~~~
arch/mips/ralink/mt7621.c:127:9: note: in expansion of macro 'if'
127 | if ((size == 256 * SZ_1M) &&
| ^~
arch/mips/ralink/mt7621.c:54:14: note: at offset 268435456 into source object 'detect_magic' of size 4
54 | static void *detect_magic __initdata = detect_memory_region;
| ^~~~~~~~~~~~
{standard input}: Assembler messages:
{standard input}:127: Error: found '(', expected: ')'
{standard input}:127: Error: found '(', expected: ')'
{standard input}:127: Error: non-constant expression in ".if" statement
{standard input}:127: Error: junk at end of line, first unrecognized character is `('
{standard input}:154: Error: found '(', expected: ')'
{standard input}:154: Error: found '(', expected: ')'
{standard input}:154: Error: non-constant expression in ".if" statement
{standard input}:154: Error: junk at end of line, first unrecognized character is `('
vim +/__builtin_memcmp +123 arch/mips/ralink/mt7621.c
116
117 static void __init mt7621_memory_detect(void)
118 {
119 void *dm = &detect_magic;
120 phys_addr_t size;
121
122 for (size = 32 * SZ_1M; size < 256 * SZ_1M; size <<= 1) {
> 123 if (!__builtin_memcmp(dm, dm + size, sizeof(detect_magic)))
124 break;
125 }
126
127 if ((size == 256 * SZ_1M) &&
128 (CPHYSADDR(dm + size) < MT7621_LOWMEM_MAX_SIZE) &&
129 __builtin_memcmp(dm, dm + size, sizeof(detect_magic))) {
130 memblock_add(MT7621_LOWMEM_BASE, MT7621_LOWMEM_MAX_SIZE);
131 memblock_add(MT7621_HIGHMEM_BASE, MT7621_HIGHMEM_SIZE);
132 } else {
133 memblock_add(MT7621_LOWMEM_BASE, size);
134 }
135 }
136
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx