kdump: defer the insertion of crashkernel resources
In /proc/iomem, sub-regions should be inserted after their parent,
otherwise the insertion of parent resource fails. But after generic
crashkernel reservation applied, in both RISC-V and ARM64 (LoongArch will
also use generic reservation later on), crashkernel resources are inserted
before their parent, which causes the parent disappear in /proc/iomem. So
we defer the insertion of crashkernel resources to an early_initcall().
1, Without 'crashkernel' parameter:
100d0100-
100d01ff : LOON0001:00
100d0100-
100d01ff : LOON0001:00 LOON0001:00
100e0000-
100e0bff : LOON0002:00
100e0000-
100e0bff : LOON0002:00 LOON0002:00
1fe001e0-
1fe001e7 : serial
90400000-
fa17ffff : System RAM
f6220000-
f622ffff : Reserved
f9ee0000-
f9ee3fff : Reserved
fa120000-
fa17ffff : Reserved
fa190000-
fe0bffff : System RAM
fa190000-
fa1bffff : Reserved
fe4e0000-
47fffffff : System RAM
43c000000-
441ffffff : Reserved
47ff98000-
47ffa3fff : Reserved
47ffa4000-
47ffa7fff : Reserved
47ffa8000-
47ffabfff : Reserved
47ffac000-
47ffaffff : Reserved
47ffb0000-
47ffb3fff : Reserved
2, With 'crashkernel' parameter, before this patch:
100d0100-
100d01ff : LOON0001:00
100d0100-
100d01ff : LOON0001:00 LOON0001:00
100e0000-
100e0bff : LOON0002:00
100e0000-
100e0bff : LOON0002:00 LOON0002:00
1fe001e0-
1fe001e7 : serial
e6200000-
f61fffff : Crash kernel
fa190000-
fe0bffff : System RAM
fa190000-
fa1bffff : Reserved
fe4e0000-
47fffffff : System RAM
43c000000-
441ffffff : Reserved
47ff98000-
47ffa3fff : Reserved
47ffa4000-
47ffa7fff : Reserved
47ffa8000-
47ffabfff : Reserved
47ffac000-
47ffaffff : Reserved
47ffb0000-
47ffb3fff : Reserved
3, With 'crashkernel' parameter, after this patch:
100d0100-
100d01ff : LOON0001:00
100d0100-
100d01ff : LOON0001:00 LOON0001:00
100e0000-
100e0bff : LOON0002:00
100e0000-
100e0bff : LOON0002:00 LOON0002:00
1fe001e0-
1fe001e7 : serial
90400000-
fa17ffff : System RAM
e6200000-
f61fffff : Crash kernel
f6220000-
f622ffff : Reserved
f9ee0000-
f9ee3fff : Reserved
fa120000-
fa17ffff : Reserved
fa190000-
fe0bffff : System RAM
fa190000-
fa1bffff : Reserved
fe4e0000-
47fffffff : System RAM
43c000000-
441ffffff : Reserved
47ff98000-
47ffa3fff : Reserved
47ffa4000-
47ffa7fff : Reserved
47ffa8000-
47ffabfff : Reserved
47ffac000-
47ffaffff : Reserved
47ffb0000-
47ffb3fff : Reserved
Link: https://lkml.kernel.org/r/20231229080213.2622204-1-chenhuacai@loongson.cn
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Fixes: 0ab97169aa05 ("crash_core: add generic function to do reservation")
Cc: Baoquan He <bhe@redhat.com>
Cc: Zhen Lei <thunder.leizhen@huawei.com>
Cc: <stable@vger.kernel.org> [6.6+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>