arch/powerpc/kexec/core.c:246:29: sparse: sparse: incorrect type in assignment (different base types)

From: kernel test robot
Date: Tue Sep 29 2020 - 00:01:30 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: fb0155a09b0224a7147cb07a4ce6034c8d29667f
commit: 793b08e2efff3ec020c5c5861d00ed394fcdd488 powerpc/kexec: Move kexec files into a dedicated subdir.
date: 10 months ago
config: powerpc-randconfig-s032-20200929 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.2-201-g24bdaac6-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=793b08e2efff3ec020c5c5861d00ed394fcdd488
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 793b08e2efff3ec020c5c5861d00ed394fcdd488
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=powerpc

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

>> arch/powerpc/kexec/core.c:246:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long static [addressable] [toplevel] [usertype] crashk_base @@ got restricted __be32 [usertype] @@
arch/powerpc/kexec/core.c:246:29: sparse: expected unsigned long long static [addressable] [toplevel] [usertype] crashk_base
arch/powerpc/kexec/core.c:246:29: sparse: got restricted __be32 [usertype]
>> arch/powerpc/kexec/core.c:248:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long static [addressable] [toplevel] [usertype] crashk_size @@ got restricted __be32 [usertype] @@
arch/powerpc/kexec/core.c:248:29: sparse: expected unsigned long long static [addressable] [toplevel] [usertype] crashk_size
arch/powerpc/kexec/core.c:248:29: sparse: got restricted __be32 [usertype]
arch/powerpc/kexec/core.c:256:19: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long static [addressable] [toplevel] mem_limit @@ got restricted __be32 [usertype] @@
arch/powerpc/kexec/core.c:256:19: sparse: expected unsigned long long static [addressable] [toplevel] mem_limit
arch/powerpc/kexec/core.c:256:19: sparse: got restricted __be32 [usertype]
>> arch/powerpc/kexec/core.c:272:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long static [addressable] [toplevel] [usertype] kernel_end @@ got restricted __be32 [usertype] @@
arch/powerpc/kexec/core.c:272:20: sparse: expected unsigned long long static [addressable] [toplevel] [usertype] kernel_end
arch/powerpc/kexec/core.c:272:20: sparse: got restricted __be32 [usertype]

vim +246 arch/powerpc/kexec/core.c

ea961a828fe7250 arch/powerpc/kernel/machine_kexec.c Anton Blanchard 2014-01-22 235
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 236 static void __init export_crashk_values(struct device_node *node)
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 237 {
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 238 /* There might be existing crash kernel properties, but we can't
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 239 * be sure what's in them, so remove them. */
925e2d1ded80fcc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh 2016-04-28 240 of_remove_property(node, of_find_property(node,
925e2d1ded80fcc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh 2016-04-28 241 "linux,crashkernel-base", NULL));
925e2d1ded80fcc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh 2016-04-28 242 of_remove_property(node, of_find_property(node,
925e2d1ded80fcc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh 2016-04-28 243 "linux,crashkernel-size", NULL));
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 244
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 245 if (crashk_res.start != 0) {
ea961a828fe7250 arch/powerpc/kernel/machine_kexec.c Anton Blanchard 2014-01-22 @246 crashk_base = cpu_to_be_ulong(crashk_res.start),
79d1c712958f943 arch/powerpc/kernel/machine_kexec.c Nathan Fontenot 2012-10-02 247 of_add_property(node, &crashk_base_prop);
ea961a828fe7250 arch/powerpc/kernel/machine_kexec.c Anton Blanchard 2014-01-22 @248 crashk_size = cpu_to_be_ulong(resource_size(&crashk_res));
79d1c712958f943 arch/powerpc/kernel/machine_kexec.c Nathan Fontenot 2012-10-02 249 of_add_property(node, &crashk_size_prop);
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 250 }
4bc77a5ed215b4e arch/powerpc/kernel/machine_kexec.c Suzuki Poulose 2012-08-21 251
4bc77a5ed215b4e arch/powerpc/kernel/machine_kexec.c Suzuki Poulose 2012-08-21 252 /*
4bc77a5ed215b4e arch/powerpc/kernel/machine_kexec.c Suzuki Poulose 2012-08-21 253 * memory_limit is required by the kexec-tools to limit the
4bc77a5ed215b4e arch/powerpc/kernel/machine_kexec.c Suzuki Poulose 2012-08-21 254 * crash regions to the actual memory used.
4bc77a5ed215b4e arch/powerpc/kernel/machine_kexec.c Suzuki Poulose 2012-08-21 255 */
ea961a828fe7250 arch/powerpc/kernel/machine_kexec.c Anton Blanchard 2014-01-22 256 mem_limit = cpu_to_be_ulong(memory_limit);
79d1c712958f943 arch/powerpc/kernel/machine_kexec.c Nathan Fontenot 2012-10-02 257 of_update_property(node, &memory_limit_prop);
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 258 }
6f29c3298b18216 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-17 259
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 260 static int __init kexec_setup(void)
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 261 {
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 262 struct device_node *node;
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 263
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 264 node = of_find_node_by_path("/chosen");
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 265 if (!node)
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 266 return -ENOENT;
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 267
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 268 /* remove any stale properties so ours can be found */
925e2d1ded80fcc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh 2016-04-28 269 of_remove_property(node, of_find_property(node, kernel_end_prop.name, NULL));
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 270
2e8e4f5b80e101d arch/powerpc/kernel/machine_kexec.c Dale Farnsworth 2008-12-16 271 /* information needed by userspace when using default_machine_kexec */
ea961a828fe7250 arch/powerpc/kernel/machine_kexec.c Anton Blanchard 2014-01-22 @272 kernel_end = cpu_to_be_ulong(__pa(_end));

:::::: The code at line 246 was first introduced by commit
:::::: ea961a828fe7250e954f086d74d9323c3d44c3e4 powerpc: Fix endian issues in kexec and crash dump code

:::::: TO: Anton Blanchard <anton@xxxxxxxxx>
:::::: CC: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip