Commit ac7c5e9b authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc/64s: Remove EXSLB interrupt save area



SLB faults should not be taken while the PACA save areas are live, all
memory accesses should be fetches from the kernel text, and access to
PACA and the current stack, before C code is called or any other
accesses are made.

All of these have pinned SLBs so will not take a SLB fault. Therefore
EXSLB is not be required.

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210208063406.331655-1-npiggin@gmail.com
parent 14ad0e7d
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -109,8 +109,7 @@ struct paca_struct {
	 */
	/* used for most interrupts/exceptions */
	u64 exgen[EX_SIZE] __attribute__((aligned(0x80)));
	u64 exslb[EX_SIZE];	/* used for SLB/segment table misses
 				 * on the linear mapping */

	/* SLB related definitions */
	u16 vmalloc_sllp;
	u8 slb_cache_ptr;
+0 −1
Original line number Diff line number Diff line
@@ -255,7 +255,6 @@ int main(void)
#endif /* CONFIG_PPC_MM_SLICES */
	OFFSET(PACA_EXGEN, paca_struct, exgen);
	OFFSET(PACA_EXMC, paca_struct, exmc);
	OFFSET(PACA_EXSLB, paca_struct, exslb);
	OFFSET(PACA_EXNMI, paca_struct, exnmi);
#ifdef CONFIG_PPC_PSERIES
	OFFSET(PACALPPACAPTR, paca_struct, lppaca_ptr);
+0 −5
Original line number Diff line number Diff line
@@ -1412,13 +1412,9 @@ ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_TYPE_RADIX)
 *   on user-handler data structures.
 *
 *   KVM: Same as 0x300, DSLB must test for KVM guest.
 *
 * A dedicated save area EXSLB is used (XXX: but it actually need not be
 * these days, we could use EXGEN).
 */
INT_DEFINE_BEGIN(data_access_slb)
	IVEC=0x380
	IAREA=PACA_EXSLB
	IDAR=1
	IKVM_SKIP=1
	IKVM_REAL=1
@@ -1501,7 +1497,6 @@ ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_TYPE_RADIX)
 */
INT_DEFINE_BEGIN(instruction_access_slb)
	IVEC=0x480
	IAREA=PACA_EXSLB
	IISIDE=1
	IDAR=1
#ifdef CONFIG_KVM_BOOK3S_PR_POSSIBLE