Re: [PATCH v2 2/3] riscv: End kernel region search in setup_bootmem earlier

From: Alex Ghiti
Date: Sun Feb 16 2020 - 14:57:09 EST



On 2/16/20 11:06 AM, Jan Kiszka wrote:
On 16.02.20 15:42, Alex Ghiti wrote:
Hi Jan,

On 2/15/20 6:49 AM, Jan Kiszka wrote:
From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>

No need to look further when that single region is found.

Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
=2D--
  arch/riscv/mm/init.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index aec39a56d6cf..a774547e9021 100644
=2D-- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -160,6 +160,8 @@ void __init setup_bootmem(void)
              if (reg->base + mem_size < end)
                  memblock_remove(reg->base + mem_size,
                          end - reg->base - mem_size);
+
+            break;
          }
      }
      BUG_ON(mem_size =3D=3D 0);
=2D-
2.16.4



I was looking at the test above that determines if the current memblock
contains the kernel:

if (reg->base <= vmlinux_end && vmlinux_end <= end)

Shouldn't it be:

if (reg->base <= vmlinux_start && vmlinux_end <= end)

?

Yes, I think you are right. Would you like to send a patch that fixes this?

Thanks for confirming, I'll send a patch tomorrow and cc stable too.

Alex



Otherwise, we can indeed stop as soon as we found the region containing
the kernel, so feel free to add:

Reviewed-by: Alexandre Ghiti <alex@xxxxxxxx>


Thanks,
Jan