arch/powerpc/platforms/powernv/opal-fadump.c:42:33: sparse: sparse: incorrect type in assignment (different base types)

From: kernel test robot
Date: Sat Aug 08 2020 - 07:46:06 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 449dc8c97089a6e09fb2dac4d92b1b7ac0eb7c1e
commit: 742a265accd3e3afcc8e7b17f409c93c1de8be85 powerpc/fadump: register kernel metadata address with opal
date: 11 months ago
config: powerpc64-randconfig-s032-20200808 (attached as .config)
compiler: powerpc64-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-118-ge1578773-dirty
git checkout 742a265accd3e3afcc8e7b17f409c93c1de8be85
# 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=powerpc64

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/platforms/powernv/opal-fadump.c:42:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be64 [usertype] dest @@ got unsigned long long [usertype] addr @@
>> arch/powerpc/platforms/powernv/opal-fadump.c:42:33: sparse: expected restricted __be64 [usertype] dest
>> arch/powerpc/platforms/powernv/opal-fadump.c:42:33: sparse: got unsigned long long [usertype] addr
arch/powerpc/platforms/powernv/opal-fadump.c:43:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be64 [usertype] size @@ got unsigned long boot_memory_size @@
>> arch/powerpc/platforms/powernv/opal-fadump.c:43:33: sparse: expected restricted __be64 [usertype] size
arch/powerpc/platforms/powernv/opal-fadump.c:43:33: sparse: got unsigned long boot_memory_size
>> arch/powerpc/platforms/powernv/opal-fadump.c:50:53: sparse: sparse: restricted __be64 degrades to integer

vim +42 arch/powerpc/platforms/powernv/opal-fadump.c

32
33 static u64 opal_fadump_init_mem_struct(struct fw_dump *fadump_conf)
34 {
35 u64 addr = fadump_conf->reserve_dump_area_start;
36
37 opal_fdm = __va(fadump_conf->kernel_metadata);
38 opal_fadump_init_metadata(opal_fdm);
39
40 opal_fdm->region_cnt = 1;
41 opal_fdm->rgn[0].src = 0;
> 42 opal_fdm->rgn[0].dest = addr;
> 43 opal_fdm->rgn[0].size = fadump_conf->boot_memory_size;
44 addr += fadump_conf->boot_memory_size;
45
46 /*
47 * Kernel metadata is passed to f/w and retrieved in capture kerenl.
48 * So, use it to save fadump header address instead of calculating it.
49 */
> 50 opal_fdm->fadumphdr_addr = (opal_fdm->rgn[0].dest +
51 fadump_conf->boot_memory_size);
52
53 return addr;
54 }
55

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

Attachment: .config.gz
Description: application/gzip