* [linux-next:master 13427/13588] kernel/liveupdate/kexec_handover.c:978 kho_preserve_vmalloc() warn: missing error code 'err'
@ 2025-10-14 8:15 Dan Carpenter
2025-10-15 2:50 ` Andrew Morton
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2025-10-14 8:15 UTC (permalink / raw)
To: oe-kbuild, Pasha Tatashin
Cc: lkp, oe-kbuild-all, Andrew Morton, Linux Memory Management List,
Jason Gunthorpe
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 0b2f041c47acb45db82b4e847af6e17eb66cd32d
commit: f13bb574707674d1113a40e0b6dc4d9a143d2ec1 [13427/13588] liveupdate: kho: move to kernel/liveupdate
config: x86_64-randconfig-161-20251010 (https://download.01.org/0day-ci/archive/20251010/202510100941.GZGMq64U-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
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@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202510100941.GZGMq64U-lkp@intel.com/
smatch warnings:
kernel/liveupdate/kexec_handover.c:978 kho_preserve_vmalloc() warn: missing error code 'err'
vim +/err +978 kernel/liveupdate/kexec_handover.c
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 944) int kho_preserve_vmalloc(void *ptr, struct kho_vmalloc *preservation)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 945) {
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 946) struct kho_vmalloc_chunk *chunk;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 947) struct vm_struct *vm = find_vm_area(ptr);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 948) unsigned int order, flags, nr_contig_pages;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 949) unsigned int idx = 0;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 950) int err;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 951)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 952) if (!vm)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 953) return -EINVAL;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 954)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 955) if (vm->flags & ~KHO_VMALLOC_SUPPORTED_FLAGS)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 956) return -EOPNOTSUPP;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 957)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 958) flags = vmalloc_flags_to_kho(vm->flags);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 959) order = get_vm_area_page_order(vm);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 960)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 961) chunk = new_vmalloc_chunk(NULL);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 962) if (!chunk)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 963) return -ENOMEM;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 964) KHOSER_STORE_PTR(preservation->first, chunk);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 965)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 966) nr_contig_pages = (1 << order);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 967) for (int i = 0; i < vm->nr_pages; i += nr_contig_pages) {
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 968) phys_addr_t phys = page_to_phys(vm->pages[i]);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 969)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 970) err = kho_preserve_pages(vm->pages[i], nr_contig_pages);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 971) if (err)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 972) goto err_free;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 973)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 974) chunk->phys[idx++] = phys;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 975) if (idx == ARRAY_SIZE(chunk->phys)) {
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 976) chunk = new_vmalloc_chunk(chunk);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 977) if (!chunk)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 @978) goto err_free;
err = -ENOMEM;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 979) idx = 0;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 980) }
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 981) }
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 982)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 983) preservation->total_pages = vm->nr_pages;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 984) preservation->flags = flags;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 985) preservation->order = order;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 986)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 987) return 0;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 988)
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 989) err_free:
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 990) kho_vmalloc_free_chunks(preservation);
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 991) return err;
a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 992) }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [linux-next:master 13427/13588] kernel/liveupdate/kexec_handover.c:978 kho_preserve_vmalloc() warn: missing error code 'err'
2025-10-14 8:15 [linux-next:master 13427/13588] kernel/liveupdate/kexec_handover.c:978 kho_preserve_vmalloc() warn: missing error code 'err' Dan Carpenter
@ 2025-10-15 2:50 ` Andrew Morton
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2025-10-15 2:50 UTC (permalink / raw)
To: Dan Carpenter
Cc: oe-kbuild, Pasha Tatashin, lkp, oe-kbuild-all,
Linux Memory Management List, Jason Gunthorpe
On Tue, 14 Oct 2025 11:15:56 +0300 Dan Carpenter <dan.carpenter@linaro.org> wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: 0b2f041c47acb45db82b4e847af6e17eb66cd32d
> commit: f13bb574707674d1113a40e0b6dc4d9a143d2ec1 [13427/13588] liveupdate: kho: move to kernel/liveupdate
> config: x86_64-randconfig-161-20251010 (https://download.01.org/0day-ci/archive/20251010/202510100941.GZGMq64U-lkp@intel.com/config)
> compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
>
> 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@intel.com>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202510100941.GZGMq64U-lkp@intel.com/
>
> smatch warnings:
> kernel/liveupdate/kexec_handover.c:978 kho_preserve_vmalloc() warn: missing error code 'err'
>
> vim +/err +978 kernel/liveupdate/kexec_handover.c
>
> ...
>
> a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 975) if (idx == ARRAY_SIZE(chunk->phys)) {
> a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 976) chunk = new_vmalloc_chunk(chunk);
> a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 977) if (!chunk)
> a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 @978) goto err_free;
>
> err = -ENOMEM;
>
> a667300bd53f27 kernel/kexec_handover.c Mike Rapoport (Microsoft 2025-09-21 979) idx = 0;
Thanks, I'll add this:
--- a/kernel/liveupdate/kexec_handover.c~liveupdate-kho-move-to-kernel-liveupdate-fix
+++ a/kernel/liveupdate/kexec_handover.c
@@ -974,8 +974,10 @@ int kho_preserve_vmalloc(void *ptr, stru
chunk->phys[idx++] = phys;
if (idx == ARRAY_SIZE(chunk->phys)) {
chunk = new_vmalloc_chunk(chunk);
- if (!chunk)
+ if (!chunk) {
+ err = -ENOMEM;
goto err_free;
+ }
idx = 0;
}
}
_
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-10-15 2:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-14 8:15 [linux-next:master 13427/13588] kernel/liveupdate/kexec_handover.c:978 kho_preserve_vmalloc() warn: missing error code 'err' Dan Carpenter
2025-10-15 2:50 ` Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox