drivers/mtd/parsers/ofpart_bcm4908.c:41 bcm4908_partitions_fw_offset() warn: should 'offset << 10' be a 64 bit type?

From: Dan Carpenter
Date: Mon Dec 06 2021 - 08:19:02 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5f58da2befa58edf3a70b91ed87ed9bf77f1e70e
commit: bb17230c61a6424b622e92006ec52ba23aa5a967 mtd: parsers: ofpart: support BCM4908 fixed partitions
date: 9 months ago
config: nios2-randconfig-m031-20211202 (https://download.01.org/0day-ci/archive/20211204/202112040342.AvFc4SDJ-lkp@xxxxxxxxx/config)
compiler: nios2-linux-gcc (GCC) 11.2.0

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

smatch warnings:
drivers/mtd/parsers/ofpart_bcm4908.c:41 bcm4908_partitions_fw_offset() warn: should 'offset << 10' be a 64 bit type?

vim +41 drivers/mtd/parsers/ofpart_bcm4908.c

bb17230c61a642 Rafał Miłecki 2021-03-01 17 static long long bcm4908_partitions_fw_offset(void)
^^^^^^^^^
This is long long.

bb17230c61a642 Rafał Miłecki 2021-03-01 18 {
bb17230c61a642 Rafał Miłecki 2021-03-01 19 struct device_node *root;
bb17230c61a642 Rafał Miłecki 2021-03-01 20 struct property *prop;
bb17230c61a642 Rafał Miłecki 2021-03-01 21 const char *s;
bb17230c61a642 Rafał Miłecki 2021-03-01 22
bb17230c61a642 Rafał Miłecki 2021-03-01 23 root = of_find_node_by_path("/");
bb17230c61a642 Rafał Miłecki 2021-03-01 24 if (!root)
bb17230c61a642 Rafał Miłecki 2021-03-01 25 return -ENOENT;
bb17230c61a642 Rafał Miłecki 2021-03-01 26
bb17230c61a642 Rafał Miłecki 2021-03-01 27 of_property_for_each_string(root, "brcm_blparms", prop, s) {
bb17230c61a642 Rafał Miłecki 2021-03-01 28 size_t len = strlen(BLPARAMS_FW_OFFSET);
bb17230c61a642 Rafał Miłecki 2021-03-01 29 unsigned long offset;
bb17230c61a642 Rafał Miłecki 2021-03-01 30 int err;
bb17230c61a642 Rafał Miłecki 2021-03-01 31
bb17230c61a642 Rafał Miłecki 2021-03-01 32 if (strncmp(s, BLPARAMS_FW_OFFSET, len) || s[len] != '=')
bb17230c61a642 Rafał Miłecki 2021-03-01 33 continue;
bb17230c61a642 Rafał Miłecki 2021-03-01 34
bb17230c61a642 Rafał Miłecki 2021-03-01 35 err = kstrtoul(s + len + 1, 0, &offset);
bb17230c61a642 Rafał Miłecki 2021-03-01 36 if (err) {
bb17230c61a642 Rafał Miłecki 2021-03-01 37 pr_err("failed to parse %s\n", s + len + 1);
bb17230c61a642 Rafał Miłecki 2021-03-01 38 return err;
bb17230c61a642 Rafał Miłecki 2021-03-01 39 }
bb17230c61a642 Rafał Miłecki 2021-03-01 40
bb17230c61a642 Rafał Miłecki 2021-03-01 @41 return offset << 10;
^^^^^^^^^^^^
So this should be long long. Although 32bit systems are not really
common in real life any more...

bb17230c61a642 Rafał Miłecki 2021-03-01 42 }
bb17230c61a642 Rafał Miłecki 2021-03-01 43
bb17230c61a642 Rafał Miłecki 2021-03-01 44 return -ENOENT;
bb17230c61a642 Rafał Miłecki 2021-03-01 45 }

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