Commit 9d6d712f authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/32s: Fix boot failure with DEBUG_PAGEALLOC without KASAN.



When KASAN is selected, the definitive hash table has to be
set up later, but there is already an early temporary one.

When KASAN is not selected, there is no early hash table,
so the setup of the definitive hash table cannot be delayed.

Fixes: 72f208c6 ("powerpc/32s: move hash code patching out of MMU_init_hw()")
Cc: stable@vger.kernel.org # v5.2+
Reported-by: default avatarJonathan Neuschafer <j.neuschaefer@gmx.net>
Tested-by: default avatarJonathan Neuschafer <j.neuschaefer@gmx.net>
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/b7860c5e1e784d6b96ba67edf47dd6cbc2e78ab6.1565776892.git.christophe.leroy@c-s.fr
parent 38a0d0cd
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -897,9 +897,11 @@ start_here:
	bl	machine_init
	bl	__save_cpu_setup
	bl	MMU_init
#ifdef CONFIG_KASAN
BEGIN_MMU_FTR_SECTION
	bl	MMU_init_hw_patch
END_MMU_FTR_SECTION_IFSET(MMU_FTR_HPTE_TABLE)
#endif

/*
 * Go back to running unmapped so we can load up new values
+9 −0
Original line number Diff line number Diff line
@@ -358,6 +358,15 @@ void __init MMU_init_hw(void)
	hash_mb2 = hash_mb = 32 - LG_HPTEG_SIZE - lg_n_hpteg;
	if (lg_n_hpteg > 16)
		hash_mb2 = 16 - LG_HPTEG_SIZE;

	/*
	 * When KASAN is selected, there is already an early temporary hash
	 * table and the switch to the final hash table is done later.
	 */
	if (IS_ENABLED(CONFIG_KASAN))
		return;

	MMU_init_hw_patch();
}

void __init MMU_init_hw_patch(void)