Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/64s: Add SCV FSCR bit for ISA v3.0

Add the bit definition and use it in facility_unavailable_exception() so we can
intelligently report the cause if we take a fault for SCV. This doesn't actually
enable SCV.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[mpe: Drop whitespace changes to the existing entries, flush out change log]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

authored by

Nicholas Piggin and committed by
Michael Ellerman
9b7ff0c6 794464f4

+3
+2
arch/powerpc/include/asm/reg.h
··· 310 310 #define SPRN_PMCR 0x374 /* Power Management Control Register */ 311 311 312 312 /* HFSCR and FSCR bit numbers are the same */ 313 + #define FSCR_SCV_LG 12 /* Enable System Call Vectored */ 313 314 #define FSCR_MSGP_LG 10 /* Enable MSGP */ 314 315 #define FSCR_TAR_LG 8 /* Enable Target Address Register */ 315 316 #define FSCR_EBB_LG 7 /* Enable Event Based Branching */ ··· 321 320 #define FSCR_VECVSX_LG 1 /* Enable VMX/VSX */ 322 321 #define FSCR_FP_LG 0 /* Enable Floating Point */ 323 322 #define SPRN_FSCR 0x099 /* Facility Status & Control Register */ 323 + #define FSCR_SCV __MASK(FSCR_SCV_LG) 324 324 #define FSCR_TAR __MASK(FSCR_TAR_LG) 325 325 #define FSCR_EBB __MASK(FSCR_EBB_LG) 326 326 #define FSCR_DSCR __MASK(FSCR_DSCR_LG)
+1
arch/powerpc/kernel/traps.c
··· 1441 1441 [FSCR_EBB_LG] = "EBB", 1442 1442 [FSCR_TAR_LG] = "TAR", 1443 1443 [FSCR_MSGP_LG] = "MSGP", 1444 + [FSCR_SCV_LG] = "SCV", 1444 1445 }; 1445 1446 char *facility = "unknown"; 1446 1447 u64 value;