* [PATCH 3/6] riscv: remove unreachable invalid range check in create_linear_mapping_page_table()
2026-06-21 14:59 [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops Sang-Heon Jeon
@ 2026-06-21 14:59 ` Sang-Heon Jeon
2026-06-22 5:10 ` Charlie Jenkins
2026-06-21 14:59 ` [PATCH 4/6] riscv: remove unreachable invalid range check in kasan_init() Sang-Heon Jeon
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Sang-Heon Jeon @ 2026-06-21 14:59 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: Sang-Heon Jeon, Alexandre Ghiti, linux-riscv
create_linear_mapping_page_table() iterates memblock regions with
for_each_mem_range() and breaks the loop when start >= end.
for_each_mem_range() never returns an invalid range, so start < end always.
Therefore the start >= end check is unreachable, so remove it.
No functional change.
Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
---
arch/riscv/mm/init.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index 5b1b3c88b4d1..eb93c2ac05a6 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -1229,8 +1229,6 @@ static void __init create_linear_mapping_page_table(void)
/* Map all memory banks in the linear mapping */
for_each_mem_range(i, &start, &end) {
- if (start >= end)
- break;
if (start <= __pa(PAGE_OFFSET) &&
__pa(PAGE_OFFSET) < end)
start = __pa(PAGE_OFFSET);
--
2.43.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH 3/6] riscv: remove unreachable invalid range check in create_linear_mapping_page_table()
2026-06-21 14:59 ` [PATCH 3/6] riscv: remove unreachable invalid range check in create_linear_mapping_page_table() Sang-Heon Jeon
@ 2026-06-22 5:10 ` Charlie Jenkins
0 siblings, 0 replies; 9+ messages in thread
From: Charlie Jenkins @ 2026-06-22 5:10 UTC (permalink / raw)
To: Sang-Heon Jeon
Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
linux-riscv
On Sun, Jun 21, 2026 at 11:59:13PM +0900, Sang-Heon Jeon wrote:
> create_linear_mapping_page_table() iterates memblock regions with
> for_each_mem_range() and breaks the loop when start >= end.
> for_each_mem_range() never returns an invalid range, so start < end always.
>
> Therefore the start >= end check is unreachable, so remove it.
>
> No functional change.
>
> Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
Reviewed-by: Charlie Jenkins <thecharlesjenkins@gmail.com>
Tested-by: Charlie Jenkins <thecharlesjenkins@gmail.com>
> ---
> arch/riscv/mm/init.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index 5b1b3c88b4d1..eb93c2ac05a6 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -1229,8 +1229,6 @@ static void __init create_linear_mapping_page_table(void)
>
> /* Map all memory banks in the linear mapping */
> for_each_mem_range(i, &start, &end) {
> - if (start >= end)
> - break;
> if (start <= __pa(PAGE_OFFSET) &&
> __pa(PAGE_OFFSET) < end)
> start = __pa(PAGE_OFFSET);
> --
> 2.43.0
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 4/6] riscv: remove unreachable invalid range check in kasan_init()
2026-06-21 14:59 [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops Sang-Heon Jeon
2026-06-21 14:59 ` [PATCH 3/6] riscv: remove unreachable invalid range check in create_linear_mapping_page_table() Sang-Heon Jeon
@ 2026-06-21 14:59 ` Sang-Heon Jeon
2026-06-22 5:11 ` Charlie Jenkins
2026-06-22 16:53 ` Andrey Ryabinin
2026-06-25 8:46 ` [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops Mike Rapoport
2026-06-26 8:23 ` Mike Rapoport
3 siblings, 2 replies; 9+ messages in thread
From: Sang-Heon Jeon @ 2026-06-21 14:59 UTC (permalink / raw)
To: Andrey Ryabinin, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: Sang-Heon Jeon, Alexander Potapenko, Alexandre Ghiti,
Andrey Konovalov, Dmitry Vyukov, kasan-dev, linux-riscv,
Vincenzo Frascino
kasan_init() populates the linear mapping shadow with for_each_mem_range()
and breaks the loop when start >= end. for_each_mem_range() never returns
an invalid range, so start < end always.
Therefore the start >= end check is unreachable, so remove it.
No functional change.
Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
---
arch/riscv/mm/kasan_init.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/arch/riscv/mm/kasan_init.c b/arch/riscv/mm/kasan_init.c
index c4a2a9e5586e..1f3aa9611187 100644
--- a/arch/riscv/mm/kasan_init.c
+++ b/arch/riscv/mm/kasan_init.c
@@ -512,9 +512,6 @@ void __init kasan_init(void)
void *start = (void *)__va(p_start);
void *end = (void *)__va(p_end);
- if (start >= end)
- break;
-
kasan_populate(kasan_mem_to_shadow(start), kasan_mem_to_shadow(end));
}
--
2.43.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 4/6] riscv: remove unreachable invalid range check in kasan_init()
2026-06-21 14:59 ` [PATCH 4/6] riscv: remove unreachable invalid range check in kasan_init() Sang-Heon Jeon
@ 2026-06-22 5:11 ` Charlie Jenkins
2026-06-22 16:53 ` Andrey Ryabinin
1 sibling, 0 replies; 9+ messages in thread
From: Charlie Jenkins @ 2026-06-22 5:11 UTC (permalink / raw)
To: Sang-Heon Jeon
Cc: Andrey Ryabinin, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexander Potapenko, Alexandre Ghiti, Andrey Konovalov,
Dmitry Vyukov, kasan-dev, linux-riscv, Vincenzo Frascino
On Sun, Jun 21, 2026 at 11:59:14PM +0900, Sang-Heon Jeon wrote:
> kasan_init() populates the linear mapping shadow with for_each_mem_range()
> and breaks the loop when start >= end. for_each_mem_range() never returns
> an invalid range, so start < end always.
>
> Therefore the start >= end check is unreachable, so remove it.
>
> No functional change.
>
> Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
Reviewed-by: Charlie Jenkins <thecharlesjenkins@gmail.com>
Tested-by: Charlie Jenkins <thecharlesjenkins@gmail.com>
> ---
> arch/riscv/mm/kasan_init.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/arch/riscv/mm/kasan_init.c b/arch/riscv/mm/kasan_init.c
> index c4a2a9e5586e..1f3aa9611187 100644
> --- a/arch/riscv/mm/kasan_init.c
> +++ b/arch/riscv/mm/kasan_init.c
> @@ -512,9 +512,6 @@ void __init kasan_init(void)
> void *start = (void *)__va(p_start);
> void *end = (void *)__va(p_end);
>
> - if (start >= end)
> - break;
> -
> kasan_populate(kasan_mem_to_shadow(start), kasan_mem_to_shadow(end));
> }
>
> --
> 2.43.0
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/6] riscv: remove unreachable invalid range check in kasan_init()
2026-06-21 14:59 ` [PATCH 4/6] riscv: remove unreachable invalid range check in kasan_init() Sang-Heon Jeon
2026-06-22 5:11 ` Charlie Jenkins
@ 2026-06-22 16:53 ` Andrey Ryabinin
1 sibling, 0 replies; 9+ messages in thread
From: Andrey Ryabinin @ 2026-06-22 16:53 UTC (permalink / raw)
To: Sang-Heon Jeon, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: Alexander Potapenko, Alexandre Ghiti, Andrey Konovalov,
Dmitry Vyukov, kasan-dev, linux-riscv, Vincenzo Frascino
Sang-Heon Jeon <ekffu200098@gmail.com> writes:
> kasan_init() populates the linear mapping shadow with for_each_mem_range()
> and breaks the loop when start >= end. for_each_mem_range() never returns
> an invalid range, so start < end always.
>
> Therefore the start >= end check is unreachable, so remove it.
>
> No functional change.
>
> Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
> ---
> arch/riscv/mm/kasan_init.c | 3 ---
> 1 file changed, 3 deletions(-)
>
Reviewed-by: Andrey Ryabinin <ryabinin.a.a@gmail.com>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops
2026-06-21 14:59 [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops Sang-Heon Jeon
2026-06-21 14:59 ` [PATCH 3/6] riscv: remove unreachable invalid range check in create_linear_mapping_page_table() Sang-Heon Jeon
2026-06-21 14:59 ` [PATCH 4/6] riscv: remove unreachable invalid range check in kasan_init() Sang-Heon Jeon
@ 2026-06-25 8:46 ` Mike Rapoport
2026-06-26 8:23 ` Mike Rapoport
3 siblings, 0 replies; 9+ messages in thread
From: Mike Rapoport @ 2026-06-25 8:46 UTC (permalink / raw)
To: Sang-Heon Jeon
Cc: Albert Ou, Andrew Morton, Andrey Ryabinin, Catalin Marinas,
Huacai Chen, Mike Rapoport, Muchun Song, Oscar Salvador,
Palmer Dabbelt, Paul Walmsley, Will Deacon, Alexander Potapenko,
Alexandre Ghiti, Andrey Konovalov, David Hildenbrand,
Dmitry Vyukov, kasan-dev, linux-arm-kernel, linux-mm, linux-riscv,
loongarch, Vincenzo Frascino, WANG Xuerui
On Sun, 21 Jun 2026 23:59:10 +0900, Sang-Heon Jeon <ekffu200098@gmail.com> wrote:
> treewide: remove unnecessary invalid range checks in memblock iteration loops
>
> The memblock API guarantees that for_each_mem_range() and
> for_each_mem_pfn_range() never return an invalid range, meaning start is
> always less than end.
>
> Several memblock callers still have unnecessary invalid range checks in
> their loop bodies, so remove them.
>
> [...]
Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
--
Sincerely yours,
Mike.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops
2026-06-21 14:59 [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops Sang-Heon Jeon
` (2 preceding siblings ...)
2026-06-25 8:46 ` [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops Mike Rapoport
@ 2026-06-26 8:23 ` Mike Rapoport
2026-06-26 10:59 ` Sang-Heon Jeon
3 siblings, 1 reply; 9+ messages in thread
From: Mike Rapoport @ 2026-06-26 8:23 UTC (permalink / raw)
To: Sang-Heon Jeon
Cc: Albert Ou, Andrew Morton, Andrey Ryabinin, Catalin Marinas,
Huacai Chen, Muchun Song, Oscar Salvador, Palmer Dabbelt,
Paul Walmsley, Will Deacon, Alexander Potapenko, Alexandre Ghiti,
Andrey Konovalov, David Hildenbrand, Dmitry Vyukov, kasan-dev,
linux-arm-kernel, linux-mm, linux-riscv, loongarch,
Vincenzo Frascino, WANG Xuerui
On Sun, Jun 21, 2026 at 11:59:10PM +0900, Sang-Heon Jeon wrote:
> The memblock API guarantees that for_each_mem_range() and
> for_each_mem_pfn_range() never return an invalid range, meaning start is
> always less than end.
>
> Several memblock callers still have unnecessary invalid range checks in
> their loop bodies, so remove them.
>
> Sang-Heon Jeon (6):
> arm64: mm: remove unreachable invalid range check in
> kasan_init_shadow()
> LoongArch: remove unreachable invalid range check in kasan_init()
> riscv: remove unreachable invalid range check in
> create_linear_mapping_page_table()
> riscv: remove unreachable invalid range check in kasan_init()
> mm: remove unnecessary empty range check in
> early_calculate_totalpages()
> mm/hugetlb: remove unnecessary empty range check in
> hugetlb_bootmem_set_nodes()
I queued this for inclusion into memblock tree.
> arch/arm64/mm/kasan_init.c | 3 ---
> arch/loongarch/mm/kasan_init.c | 3 ---
> arch/riscv/mm/init.c | 2 --
> arch/riscv/mm/kasan_init.c | 3 ---
> mm/hugetlb.c | 3 +--
> mm/mm_init.c | 3 +--
> 6 files changed, 2 insertions(+), 15 deletions(-)
>
> --
> 2.43.0
>
--
Sincerely yours,
Mike.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH 0/6] treewide: remove unnecessary invalid range checks in memblock iteration loops
2026-06-26 8:23 ` Mike Rapoport
@ 2026-06-26 10:59 ` Sang-Heon Jeon
0 siblings, 0 replies; 9+ messages in thread
From: Sang-Heon Jeon @ 2026-06-26 10:59 UTC (permalink / raw)
To: Mike Rapoport
Cc: Albert Ou, Andrew Morton, Andrey Ryabinin, Catalin Marinas,
Huacai Chen, Muchun Song, Oscar Salvador, Palmer Dabbelt,
Paul Walmsley, Will Deacon, Alexander Potapenko, Alexandre Ghiti,
Andrey Konovalov, David Hildenbrand, Dmitry Vyukov, kasan-dev,
linux-arm-kernel, linux-mm, linux-riscv, loongarch,
Vincenzo Frascino, WANG Xuerui
On Fri, Jun 26, 2026 at 5:23 PM Mike Rapoport <rppt@kernel.org> wrote:
>
> On Sun, Jun 21, 2026 at 11:59:10PM +0900, Sang-Heon Jeon wrote:
> > The memblock API guarantees that for_each_mem_range() and
> > for_each_mem_pfn_range() never return an invalid range, meaning start is
> > always less than end.
> >
> > Several memblock callers still have unnecessary invalid range checks in
> > their loop bodies, so remove them.
> >
> > Sang-Heon Jeon (6):
> > arm64: mm: remove unreachable invalid range check in
> > kasan_init_shadow()
> > LoongArch: remove unreachable invalid range check in kasan_init()
> > riscv: remove unreachable invalid range check in
> > create_linear_mapping_page_table()
> > riscv: remove unreachable invalid range check in kasan_init()
> > mm: remove unnecessary empty range check in
> > early_calculate_totalpages()
> > mm/hugetlb: remove unnecessary empty range check in
> > hugetlb_bootmem_set_nodes()
>
> I queued this for inclusion into memblock tree.
Thank you, Mike.
Could you please review and queue this patch [1] as well? It does the
same kind of clean up, I just missed it at the time.
[1] https://lore.kernel.org/all/20260626032902.703944-1-ekffu200098@gmail.com/
> > arch/arm64/mm/kasan_init.c | 3 ---
> > arch/loongarch/mm/kasan_init.c | 3 ---
> > arch/riscv/mm/init.c | 2 --
> > arch/riscv/mm/kasan_init.c | 3 ---
> > mm/hugetlb.c | 3 +--
> > mm/mm_init.c | 3 +--
> > 6 files changed, 2 insertions(+), 15 deletions(-)
> >
> > --
> > 2.43.0
> >
>
> --
> Sincerely yours,
> Mike.
Best Regards,
Sang-Heon Jeon
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 9+ messages in thread