Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f09f1bac authored by Catalin Marinas's avatar Catalin Marinas
Browse files

arm64: Split pr_notice("Virtual kernel memory layout...") into multiple pr_cont()



The printk() implementation has a limit of LOG_LINE_MAX (== 1024 - 32)
buffer per call which the arm64 mem_init() breaches when printing the
virtual memory layout with CONFIG_KASAN enabled. The result is that the
last line is no longer printed. This patch splits the call into a
pr_notice() + additional pr_cont() calls.

Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
parent cc7c0cda
Loading
Loading
Loading
Loading
+28 −32
Original line number Diff line number Diff line
@@ -362,40 +362,36 @@ void __init mem_init(void)
#define MLG(b, t) b, t, ((t) - (b)) >> 30
#define MLK_ROUNDUP(b, t) b, t, DIV_ROUND_UP(((t) - (b)), SZ_1K)

	pr_notice("Virtual kernel memory layout:\n"
	pr_notice("Virtual kernel memory layout:\n");
#ifdef CONFIG_KASAN
		  "    kasan   : 0x%16lx - 0x%16lx   (%6ld GB)\n"
	pr_cont("    kasan   : 0x%16lx - 0x%16lx   (%6ld GB)\n",
		MLG(KASAN_SHADOW_START, KASAN_SHADOW_END));
#endif
		  "    modules : 0x%16lx - 0x%16lx   (%6ld MB)\n"
		  "    vmalloc : 0x%16lx - 0x%16lx   (%6ld GB)\n"
		  "      .text : 0x%p" " - 0x%p" "   (%6ld KB)\n"
	pr_cont("    modules : 0x%16lx - 0x%16lx   (%6ld MB)\n",
		MLM(MODULES_VADDR, MODULES_END));
	pr_cont("    vmalloc : 0x%16lx - 0x%16lx   (%6ld GB)\n",
		MLG(VMALLOC_START, VMALLOC_END));
	pr_cont("      .text : 0x%p" " - 0x%p" "   (%6ld KB)\n"
		"    .rodata : 0x%p" " - 0x%p" "   (%6ld KB)\n"
		"      .init : 0x%p" " - 0x%p" "   (%6ld KB)\n"
		  "      .data : 0x%p" " - 0x%p" "   (%6ld KB)\n"
#ifdef CONFIG_SPARSEMEM_VMEMMAP
		  "    vmemmap : 0x%16lx - 0x%16lx   (%6ld GB maximum)\n"
		  "              0x%16lx - 0x%16lx   (%6ld MB actual)\n"
#endif
		  "    fixed   : 0x%16lx - 0x%16lx   (%6ld KB)\n"
		  "    PCI I/O : 0x%16lx - 0x%16lx   (%6ld MB)\n"
		  "    memory  : 0x%16lx - 0x%16lx   (%6ld MB)\n",
#ifdef CONFIG_KASAN
		  MLG(KASAN_SHADOW_START, KASAN_SHADOW_END),
#endif
		  MLM(MODULES_VADDR, MODULES_END),
		  MLG(VMALLOC_START, VMALLOC_END),
		"      .data : 0x%p" " - 0x%p" "   (%6ld KB)\n",
		MLK_ROUNDUP(_text, __start_rodata),
		MLK_ROUNDUP(__start_rodata, _etext),
		MLK_ROUNDUP(__init_begin, __init_end),
		  MLK_ROUNDUP(_sdata, _edata),
		MLK_ROUNDUP(_sdata, _edata));
#ifdef CONFIG_SPARSEMEM_VMEMMAP
	pr_cont("    vmemmap : 0x%16lx - 0x%16lx   (%6ld GB maximum)\n"
		"              0x%16lx - 0x%16lx   (%6ld MB actual)\n",
		MLG((unsigned long)vmemmap,
		    (unsigned long)vmemmap + VMEMMAP_SIZE),
		MLM((unsigned long)phys_to_page(memblock_start_of_DRAM()),
		      (unsigned long)virt_to_page(high_memory)),
		    (unsigned long)virt_to_page(high_memory)));
#endif
		  MLK(FIXADDR_START, FIXADDR_TOP),
		  MLM(PCI_IO_START, PCI_IO_END),
	pr_cont("    fixed   : 0x%16lx - 0x%16lx   (%6ld KB)\n",
		MLK(FIXADDR_START, FIXADDR_TOP));
	pr_cont("    PCI I/O : 0x%16lx - 0x%16lx   (%6ld MB)\n",
		MLM(PCI_IO_START, PCI_IO_END));
	pr_cont("    memory  : 0x%16lx - 0x%16lx   (%6ld MB)\n",
		MLM(__phys_to_virt(memblock_start_of_DRAM()),
		    (unsigned long)high_memory));