Commit 524aa6b1 authored by Gregory CLEMENT's avatar Gregory CLEMENT Committed by Thomas Bogendoerfer
Browse files

MIPS: traps: Give more explanations if ebase doesn't belong to KSEG0



With the expanded support for placing the kernel in XPHYS rather than
just KSEG0, scenarios where ebase doesn't belong to KSEG0 are more
likely to occur. In such cases, we currently experience a substantial
and perplexing stack dump without any accompanying explanation. To
rectify this, we aim to replace the uninformative stack dump with a
warning that offers a clear explanation of the issue.

Reviewed-by: default avatarJiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: default avatarGregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
parent 5e9d13bd
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2351,10 +2351,13 @@ void __init trap_init(void)
		 * EVA is special though as it allows segments to be rearranged
		 * and to become uncached during cache error handling.
		 */
		if (!IS_ENABLED(CONFIG_EVA) && !WARN_ON(ebase_pa >= 0x20000000))
		if (!IS_ENABLED(CONFIG_EVA) && ebase_pa < 0x20000000)
			ebase = CKSEG0ADDR(ebase_pa);
		else
			ebase = (unsigned long)phys_to_virt(ebase_pa);
		if (ebase_pa >= 0x20000000)
			pr_warn("ebase(%pa) should better be in KSeg0",
				&ebase_pa);
	}

	if (cpu_has_mmips) {