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

Xia, Hui
2020-06-12T06:49:43Z

>-----Original Message-----
>From: Christophe Leroy <christophe.leroy@csgroup.eu>
>Sent: 2020年6月12日 13:15
>To: lkp <lkp@intel.com>; Christophe Leroy <christophe.leroy@c-s.fr>
>Cc: kbuild-all@lists.01.org; linux-kernel@vger.kernel.org; Michael Ellerman
><mpe@ellerman.id.au>
>Subject: Re: arch/powerpc/kexec/core.c:246:29: sparse: sparse: incorrect type in
>assignment (different base types)
>
>Le 11/06/2020 à 18:01, kernel test robot a écrit :
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head: b29482fde649c72441d5478a4ea2c52c56d97a5e
>> commit: 793b08e2efff3ec020c5c5861d00ed394fcdd488 powerpc/kexec: Move
>kexec files into a dedicated subdir.
>> date: 7 months ago
>> config: powerpc-randconfig-s032-20200611 (attached as .config)
>> compiler: powerpc-linux-gcc (GCC) 9.3.0
>> reproduce:
>> # apt-get install sparse
>> # sparse version: v0.6.1-250-g42323db3-dirty
>> git checkout 793b08e2efff3ec020c5c5861d00ed394fcdd488
>> # save the attached .config to linux build tree
>> make W=1 C=1 ARCH=powerpc CF='-fdiagnostic-prefix -
>D__CHECK_ENDIAN__'
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@intel.com>
>
>
>That's the second time the robot reports sparse errors on that commit, but the
>only thing I did is move code, that commit didn't add any code, so I don't know
>what I should do about it.
Hi Christophe,

Yes, these sparse warnings not introduced by this commit.
Please ignore them. Sorry for the noise.
These warnings were treated as new warning because the file name changed (arch/powerpc/kernel/machine_kexec.c --> arch/powerpc/kexec/core.c)
We will look for solution to resolve such kind of false positive. Thanks.

>
>Christophe
>
>
>>
>>
>> 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
>>
>> ea961a828fe725 arch/powerpc/kernel/machine_kexec.c Anton Blanchard
>2014-01-22 235
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 236 static void __init export_crashk_values(struct device_node
>*node)
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 237 {
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 238 /* There might be existing crash kernel properties, but
>we can't
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 239 * be sure what's in them, so remove them. */
>> 925e2d1ded80fc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh
>2016-04-28 240 of_remove_property(node, of_find_property(node,
>> 925e2d1ded80fc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh
>2016-04-28 241 "linux,crashkernel-base", NULL));
>> 925e2d1ded80fc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh
>2016-04-28 242 of_remove_property(node, of_find_property(node,
>> 925e2d1ded80fc arch/powerpc/kernel/machine_kexec.c Suraj Jitindar Singh
>2016-04-28 243 "linux,crashkernel-size", NULL));
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 244
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 245 if (crashk_res.start != 0) {
>> ea961a828fe725 arch/powerpc/kernel/machine_kexec.c Anton Blanchard
>2014-01-22 @246 crashk_base =
>cpu_to_be_ulong(crashk_res.start),
>> 79d1c712958f94 arch/powerpc/kernel/machine_kexec.c Nathan Fontenot
>2012-10-02 247 of_add_property(node, &crashk_base_prop);
>> ea961a828fe725 arch/powerpc/kernel/machine_kexec.c Anton Blanchard
>2014-01-22 @248 crashk_size =
>cpu_to_be_ulong(resource_size(&crashk_res));
>> 79d1c712958f94 arch/powerpc/kernel/machine_kexec.c Nathan Fontenot
>2012-10-02 249 of_add_property(node, &crashk_size_prop);
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 250 }
>> 4bc77a5ed215b4 arch/powerpc/kernel/machine_kexec.c Suzuki Poulose
>2012-08-21 251
>> 4bc77a5ed215b4 arch/powerpc/kernel/machine_kexec.c Suzuki Poulose
>2012-08-21 252 /*
>> 4bc77a5ed215b4 arch/powerpc/kernel/machine_kexec.c Suzuki Poulose
>2012-08-21 253 * memory_limit is required by the kexec-tools to limit
>the
>> 4bc77a5ed215b4 arch/powerpc/kernel/machine_kexec.c Suzuki Poulose
>2012-08-21 254 * crash regions to the actual memory used.
>> 4bc77a5ed215b4 arch/powerpc/kernel/machine_kexec.c Suzuki Poulose
>2012-08-21 255 */
>> ea961a828fe725 arch/powerpc/kernel/machine_kexec.c Anton Blanchard
>2014-01-22 256 mem_limit = cpu_to_be_ulong(memory_limit);
>> 79d1c712958f94 arch/powerpc/kernel/machine_kexec.c Nathan Fontenot
>2012-10-02 257 of_update_property(node, &memory_limit_prop);
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 258 }
>> 6f29c3298b1821 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-17 259
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 260 static int __init kexec_setup(void)
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 261 {
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 262 struct device_node *node;
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 263
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 264 node = of_find_node_by_path("/chosen");
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 265 if (!node)
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 266 return -ENOENT;
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 267
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 268 /* remove any stale properties so ours can be found */
>> 925e2d1ded80fc 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));
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 270
>> 2e8e4f5b80e101 arch/powerpc/kernel/machine_kexec.c Dale Farnsworth
>2008-12-16 271 /* information needed by userspace when using
>default_machine_kexec */
>> ea961a828fe725 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@samba.org>
>> :::::: CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>>
>> ---
>> 0-DAY CI Kernel Test Service, Intel Corporation
>> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
>>