drivers/virtio/virtio_mem.c:1031 virtio_mem_mb_plug_any_sb() error: uninitialized symbol 'rc'.

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


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 449dc8c97089a6e09fb2dac4d92b1b7ac0eb7c1e
commit: 5f1f79bbc9e26fa9412fa9522f957bb8f030c442 virtio-mem: Paravirtualized memory hotplug
date: 9 weeks ago
config: x86_64-randconfig-m001-20200808 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

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

New smatch warnings:
drivers/virtio/virtio_mem.c:1031 virtio_mem_mb_plug_any_sb() error: uninitialized symbol 'rc'.
drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dce_calcs.c:1607 calculate_bandwidth() warn: Function too hairy. No more merges.

Old smatch warnings:
drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dce_calcs.c:3387 bw_calcs() warn: inconsistent indenting

vim +/rc +1031 drivers/virtio/virtio_mem.c

978
979 /*
980 * Try to plug the desired number of subblocks of a memory block that
981 * is already added to Linux.
982 *
983 * Will modify the state of the memory block.
984 *
985 * Note: Can fail after some subblocks were successfully plugged.
986 */
987 static int virtio_mem_mb_plug_any_sb(struct virtio_mem *vm, unsigned long mb_id,
988 uint64_t *nb_sb, bool online)
989 {
990 unsigned long pfn, nr_pages;
991 int sb_id, count;
992 int rc;
993
994 if (WARN_ON_ONCE(!*nb_sb))
995 return -EINVAL;
996
997 while (*nb_sb) {
998 sb_id = virtio_mem_mb_first_unplugged_sb(vm, mb_id);
999 if (sb_id >= vm->nb_sb_per_mb)
1000 break;
1001 count = 1;
1002 while (count < *nb_sb &&
1003 sb_id + count < vm->nb_sb_per_mb &&
1004 !virtio_mem_mb_test_sb_plugged(vm, mb_id, sb_id + count,
1005 1))
1006 count++;
1007
1008 rc = virtio_mem_mb_plug_sb(vm, mb_id, sb_id, count);
1009 if (rc)
1010 return rc;
1011 *nb_sb -= count;
1012 if (!online)
1013 continue;
1014
1015 /* fake-online the pages if the memory block is online */
1016 pfn = PFN_DOWN(virtio_mem_mb_id_to_phys(mb_id) +
1017 sb_id * vm->subblock_size);
1018 nr_pages = PFN_DOWN(count * vm->subblock_size);
1019 virtio_mem_fake_online(pfn, nr_pages);
1020 }
1021
1022 if (virtio_mem_mb_test_sb_plugged(vm, mb_id, 0, vm->nb_sb_per_mb)) {
1023 if (online)
1024 virtio_mem_mb_set_state(vm, mb_id,
1025 VIRTIO_MEM_MB_STATE_ONLINE);
1026 else
1027 virtio_mem_mb_set_state(vm, mb_id,
1028 VIRTIO_MEM_MB_STATE_OFFLINE);
1029 }
1030
> 1031 return rc;
1032 }
1033

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

Attachment: .config.gz
Description: application/gzip