Re: [PATCH] powerpc/kexec: Simplify kdump_extra_elfcorehdr_size()
"Christophe Leroy (CS GROUP)" <[email protected]> Fri, 31 Jul 2026 09:07:47 +0200
| Newsgroups | org.ozlabs.lists.linuxppc-dev,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Le 30/07/2026 à 16:45, Thorsten Blum a écrit : > On Thu, Jul 30, 2026 at 04:33:18PM +0200, Christophe Leroy (CS GROUP) wrote: >> Le 30/07/2026 à 15:19, Thorsten Blum a écrit : >>> Return the size directly and drop the extra_sz variable to simplify >>> kdump_extra_elfcorehdr_size(). The two warning paths now fall through >>> to the existing return 0 at the end of the function. >>> >>> Signed-off-by: Thorsten Blum <[email protected]> >>> --- >>> arch/powerpc/kexec/file_load_64.c | 6 +----- >>> 1 file changed, 1 insertion(+), 5 deletions(-) >>> >>> diff --git a/arch/powerpc/kexec/file_load_64.c b/arch/powerpc/kexec/file_load_64.c >>> index c3503d698428..d0c544079e03 100644 >>> --- a/arch/powerpc/kexec/file_load_64.c >>> +++ b/arch/powerpc/kexec/file_load_64.c >>> @@ -377,16 +377,12 @@ static int load_backup_segment(struct kimage *image, struct kexec_buf *kbuf) >>> static unsigned int kdump_extra_elfcorehdr_size(struct crash_mem *cmem) >>> { >>> #if defined(CONFIG_CRASH_HOTPLUG) && defined(CONFIG_MEMORY_HOTPLUG) >>> - unsigned int extra_sz = 0; >>> - >>> if (CONFIG_CRASH_MAX_MEMORY_RANGES > (unsigned int)PN_XNUM) >>> pr_warn("Number of Phdrs %u exceeds max\n", CONFIG_CRASH_MAX_MEMORY_RANGES); >>> else if (cmem->nr_ranges >= CONFIG_CRASH_MAX_MEMORY_RANGES) >>> pr_warn("Configured crash mem ranges may not be enough\n"); >>> else >>> - extra_sz = (CONFIG_CRASH_MAX_MEMORY_RANGES - cmem->nr_ranges) * sizeof(Elf64_Phdr); >>> - >>> - return extra_sz; >>> + return (CONFIG_CRASH_MAX_MEMORY_RANGES - cmem->nr_ranges) * sizeof(Elf64_Phdr); >> >> I don't understand. >> >> Previously, when cmem->nr_ranges >= CONFIG_CRASH_MAX_MEMORY_RANGES you would >> return 0. Now you will return something different. For instance if >> cmem->nr_ranges is (CONFIG_CRASH_MAX_MEMORY_RANGES + 1) you will return >> (unsigned int)(-1 * sizeof(Elf64_Phdr)) > > It still returns 0. > > When cmem->nr_ranges >= CONFIG_CRASH_MAX_MEMORY_RANGES, the else if > branch prints the warning and then falls through to the return 0 at the > end of the function. The final else branch is not entered in that case. Hum ... Yes sorry I missed that. Reviewed-by: Christophe Leroy (CS GROUP) <[email protected]> > > No functional changes are intended. > >>> #endif >>> return 0; >>> } >>