[PATCH] kexec_file: remove unused arch_kexec_locate_mem_hole hook

Sourabh Jain sourabhjain at linux.ibm.com
Fri Aug 28 21:58:11 PDT 2026


Hello Mukesh,

On 28/08/26 18:50, Mukesh Pilaniya wrote:
> Hi Sourabh,
>
> The patch touches three files across three subsystems so kexec: would be
> a more accurate prefix than kexec_file, for e.g.:
>
> kexec: remove unused arch_kexec_locate_mem_hole hook

As I understand it, the kexec: prefix is generally used when the changes 
apply to both
the kexec_load and kexec_file_load syscalls.

Since these changes are specific to kexec_file_load, I used the 
kexec_file: prefix for the patch title.

That said, I’m happy to follow the convention if you and others feel the 
patch should use the
kexec: prefix. Otherwise, I would prefer to keep the kexec_file: prefix.


>
> On 27/08/26 8:14 pm, Sourabh Jain wrote:
>> No architecture provides an implementation of
>> arch_kexec_locate_mem_hole(). Use kexec_locate_mem_hole() directly
>> and remove the unused fallback wrapper from the kexec header.
>>
>> This simplifies the kexec memory allocation path without changing
>> its behavior.
>>
> Also, it might be worth mentioning in the commit message that this hook
> was originally introduced by commit f891f19736bd and that the last arch
> override was removed in commit 6e5250eaa665; making it safe to remove now.

Sure, I don’t mind including this in v2.


>
> Otherwise, the change looks good to me. Feel free to add:
> Reviewed-by: Mukesh Pilaniya <mpilaniy at redhat.com>

Thanks for the review.

- Sourabh Jain

>
>> Cc: Albert Ou <aou at eecs.berkeley.edu>
>> Cc: Andrew Morton <akpm at linux-foundation.org>
>> Cc: Baoquan He <baoquan.he at linux.dev>
>> Cc: Mike Rapoport <rppt at kernel.org>
>> Cc: Palmer Dabbelt <palmer at dabbelt.com>
>> Cc: Pasha Tatashin <pasha.tatashin at soleen.com>
>> Cc: Paul Walmsley <pjw at kernel.org>
>> Cc: Pratyush Yadav <pratyush at kernel.org>
>> Cc: linux-riscv at lists.infradead.org
>> Cc: kexec at lists.infradead.org
>> Signed-off-by: Sourabh Jain <sourabhjain at linux.ibm.com>
>> ---
>>   arch/riscv/kernel/kexec_elf.c |  2 +-
>>   include/linux/kexec.h         | 15 ---------------
>>   kernel/kexec_file.c           |  2 +-
>>   3 files changed, 2 insertions(+), 17 deletions(-)
>>
>> diff --git a/arch/riscv/kernel/kexec_elf.c b/arch/riscv/kernel/kexec_elf.c
>> index 3e9a32acb8f2..ca5abbad59e5 100644
>> --- a/arch/riscv/kernel/kexec_elf.c
>> +++ b/arch/riscv/kernel/kexec_elf.c
>> @@ -91,7 +91,7 @@ static int elf_find_pbase(struct kimage *image, unsigned long kernel_len,
>>   	kbuf.memsz = ALIGN(kernel_len, PAGE_SIZE);
>>   	kbuf.cma = NULL;
>>   	kbuf.top_down = false;
>> -	ret = arch_kexec_locate_mem_hole(&kbuf);
>> +	ret = kexec_locate_mem_hole(&kbuf);
>>   	if (!ret) {
>>   		*old_pbase = lowest_paddr;
>>   		*new_pbase = kbuf.mem;
>> diff --git a/include/linux/kexec.h b/include/linux/kexec.h
>> index 0af8ae4fdd08..e5f1cfc11fef 100644
>> --- a/include/linux/kexec.h
>> +++ b/include/linux/kexec.h
>> @@ -259,21 +259,6 @@ int kexec_kernel_verify_pe_sig(const char *kernel, unsigned long kernel_len);
>>   extern int kexec_add_buffer(struct kexec_buf *kbuf);
>>   int kexec_locate_mem_hole(struct kexec_buf *kbuf);
>>   
>> -#ifndef arch_kexec_locate_mem_hole
>> -/**
>> - * arch_kexec_locate_mem_hole - Find free memory to place the segments.
>> - * @kbuf:                       Parameters for the memory search.
>> - *
>> - * On success, kbuf->mem will have the start address of the memory region found.
>> - *
>> - * Return: 0 on success, negative errno on error.
>> - */
>> -static inline int arch_kexec_locate_mem_hole(struct kexec_buf *kbuf)
>> -{
>> -	return kexec_locate_mem_hole(kbuf);
>> -}
>> -#endif
>> -
>>   #ifndef arch_kexec_apply_relocations_add
>>   /*
>>    * arch_kexec_apply_relocations_add - apply relocations of type RELA
>> diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
>> index 59fb9d71e9d8..9a981359addd 100644
>> --- a/kernel/kexec_file.c
>> +++ b/kernel/kexec_file.c
>> @@ -784,7 +784,7 @@ int kexec_add_buffer(struct kexec_buf *kbuf)
>>   	kbuf->cma = NULL;
>>   
>>   	/* Walk the RAM ranges and allocate a suitable range for the buffer */
>> -	ret = arch_kexec_locate_mem_hole(kbuf);
>> +	ret = kexec_locate_mem_hole(kbuf);
>>   	if (ret)
>>   		return ret;
>>   




More information about the linux-riscv mailing list