kernel/liveupdate/kexec_handover.c:994 kho_preserve_vmalloc() warn: missing error code 'err'

From: Dan Carpenter

Date: Wed Jan 21 2026 - 04:05:39 EST


Hi Pasha,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6c790212c588fddeb0d852f2790840753bb604b1
commit: 48a1b2321d763b5edeaf20bd4576d8c4b5df772b liveupdate: kho: move to kernel/liveupdate
config: x86_64-randconfig-r071-20260121 (https://download.01.org/0day-ci/archive/20260121/202601211636.IRaejjdw-lkp@xxxxxxxxx/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
rustc: rustc 1.88.0 (6b00bc388 2025-06-23)
smatch version: v0.5.0-8985-g2614ff1a

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
| Closes: https://lore.kernel.org/r/202601211636.IRaejjdw-lkp@xxxxxxxxx/

smatch warnings:
kernel/liveupdate/kexec_handover.c:994 kho_preserve_vmalloc() warn: missing error code 'err'

vim +/err +994 kernel/liveupdate/kexec_handover.c

a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 960) int kho_preserve_vmalloc(void *ptr, struct kho_vmalloc *preservation)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 961) {
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 962) struct kho_vmalloc_chunk *chunk;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 963) struct vm_struct *vm = find_vm_area(ptr);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 964) unsigned int order, flags, nr_contig_pages;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 965) unsigned int idx = 0;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 966) int err;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 967)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 968) if (!vm)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 969) return -EINVAL;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 970)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 971) if (vm->flags & ~KHO_VMALLOC_SUPPORTED_FLAGS)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 972) return -EOPNOTSUPP;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 973)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 974) flags = vmalloc_flags_to_kho(vm->flags);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 975) order = get_vm_area_page_order(vm);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 976)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 977) chunk = new_vmalloc_chunk(NULL);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 978) if (!chunk)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 979) return -ENOMEM;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 980) KHOSER_STORE_PTR(preservation->first, chunk);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 981)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 982) nr_contig_pages = (1 << order);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 983) for (int i = 0; i < vm->nr_pages; i += nr_contig_pages) {
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 984) phys_addr_t phys = page_to_phys(vm->pages[i]);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 985)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 986) err = kho_preserve_pages(vm->pages[i], nr_contig_pages);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 987) if (err)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 988) goto err_free;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 989)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 990) chunk->phys[idx++] = phys;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 991) if (idx == ARRAY_SIZE(chunk->phys)) {
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 992) chunk = new_vmalloc_chunk(chunk);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 993) if (!chunk)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 @994) goto err_free;

err = -ENOMEM;

a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 995) idx = 0;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 996) }
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 997) }
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 998)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 999) preservation->total_pages = vm->nr_pages;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1000) preservation->flags = flags;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1001) preservation->order = order;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1002)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1003) return 0;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1004)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1005) err_free:
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1006) kho_vmalloc_free_chunks(preservation);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1007) return err;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 1008) }

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki