Re: [PATCH] powerpc/kexec_file: Use inclusive range checks for excluded memory

Sourabh Jain <[email protected]>
Newsgroups org.ozlabs.lists.linuxppc-dev,org.kernel.vger.linux-kernel
Message-ID <[email protected]>

On 10/08/26 20:28, Thorsten Blum wrote:
> arch_check_excluded_range() checks if a kexec segment overlaps an
> excluded memory range.
>
> Both ranges use inclusive end addresses, but the overlap check uses
> exclusive comparisons. This skips ranges with start == ->ranges[i].end
> or end == ->ranges[i].start. Use inclusive comparisons instead.
>
> Fixes: 6e5250eaa665 ("powerpc/crash: use generic APIs to locate memory hole for kdump")
> Signed-off-by: Thorsten Blum <[email protected]>
> ---
> Sashiko found this issue when reviewing another patch:
> https://sashiko.dev/#/patchset/20260809162403.18142-2-thorsten.blum%40linux.dev
> ---
>   arch/powerpc/kexec/file_load_64.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kexec/file_load_64.c b/arch/powerpc/kexec/file_load_64.c
> index 40b74cc4ed3e..32e2b7412a9f 100644
> --- a/arch/powerpc/kexec/file_load_64.c
> +++ b/arch/powerpc/kexec/file_load_64.c
> @@ -58,7 +58,7 @@ int arch_check_excluded_range(struct kimage *image, unsigned long start,
>   
>   	emem = image->arch.exclude_ranges;
>   	for (i = 0; i < emem->nr_ranges; i++)
> -		if (start < emem->ranges[i].end && end > emem->ranges[i].start)
> +		if (start <= emem->ranges[i].end && end >= emem->ranges[i].start)

Like [1] this also extends the condition to check for a 1-byte overlap.
It is unlikely to occur in practice, but I don't see any harm in doing so.
Hence the changes looks good to me. Feel free to add.

Reviewed-by: Sourabh Jain <[email protected]>

[1] 
https://lore.kernel.org/all/[email protected]/

>   			return 1;
>   
>   	return 0;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.