Message ID | 20210928105057.3406-1-peng.fan@oss.nxp.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | memblock: check memory total_size | expand |
Hi, On Tue, Sep 28, 2021 at 06:50:57PM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > mem=[X][G|M] is broken on NXP i.MX ARM64 platform, there is cases that > even type.cnt is 1, but total_size is not 0 because regions are merged > into 1. So only check 'cnt' is not enough, total_size also needs to be > taked into consideration, othersize bootargs 'mem=[X][G|B]' not work > anymore. I believe this is issue is not specific to i.MX but rather this could happen on any arm64 platform. Can you please update the changelog? > Fixes: e888fa7bb882 ("memblock: Check memory add/cap ordering") > Cc: Mike Rapoport <rppt@kernel.org> > Cc: Geert Uytterhoeven <geert+renesas@glider.be> > Cc: David Hildenbrand <david@redhat.com> > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > mm/memblock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memblock.c b/mm/memblock.c > index 184dcd2e5d99..ab67b82a9cce 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -1687,7 +1687,7 @@ void __init memblock_cap_memory_range(phys_addr_t base, phys_addr_t size) > if (!size) > return; > > - if (memblock.memory.cnt <= 1) { > + if (memblock_memory->cnt <= 1 && !memblock_memory->total_size) { The test for non-zero total size shold be sufficient here. > pr_warn("%s: No memory registered yet\n", __func__); > return; > } > -- > 2.30.0 >
diff --git a/mm/memblock.c b/mm/memblock.c index 184dcd2e5d99..ab67b82a9cce 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1687,7 +1687,7 @@ void __init memblock_cap_memory_range(phys_addr_t base, phys_addr_t size) if (!size) return; - if (memblock.memory.cnt <= 1) { + if (memblock_memory->cnt <= 1 && !memblock_memory->total_size) { pr_warn("%s: No memory registered yet\n", __func__); return; }