powerpc: Add MSR_64BIT
authorMichael Ellerman <michael@ellerman.id.au>
Thu, 7 Apr 2011 21:56:02 +0000 (21:56 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 27 Apr 2011 04:18:43 +0000 (14:18 +1000)
The MSR bit which indicates 64-bit-ness is different between server and
booke, so add a #define which gives you the right mask regardless.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/reg.h
arch/powerpc/include/asm/reg_booke.h

index 76d7d5fea5be64c9257d9502c839fba55e26687e..1f9ac12742e6086b41bf32be98b93466b1f9dd7d 100644 (file)
 #define MSR_LE         __MASK(MSR_LE_LG)       /* Little Endian */
 
 #if defined(CONFIG_PPC_BOOK3S_64)
+#define MSR_64BIT      MSR_SF
+
 /* Server variant */
 #define MSR_           MSR_ME | MSR_RI | MSR_IR | MSR_DR | MSR_ISF |MSR_HV
-#define MSR_KERNEL      MSR_ | MSR_SF
+#define MSR_KERNEL     MSR_ | MSR_64BIT
 #define MSR_USER32     MSR_ | MSR_PR | MSR_EE
-#define MSR_USER64     MSR_USER32 | MSR_SF
+#define MSR_USER64     MSR_USER32 | MSR_64BIT
 #elif defined(CONFIG_PPC_BOOK3S_32) || defined(CONFIG_8xx)
 /* Default MSR for kernel mode. */
 #define MSR_KERNEL     (MSR_ME|MSR_RI|MSR_IR|MSR_DR)
 #define MSR_USER       (MSR_KERNEL|MSR_PR|MSR_EE)
 #endif
 
+#ifndef MSR_64BIT
+#define MSR_64BIT      0
+#endif
+
 /* Floating Point Status and Control Register (FPSCR) Fields */
 #define FPSCR_FX       0x80000000      /* FPU exception summary */
 #define FPSCR_FEX      0x40000000      /* FPU enabled exception summary */
index b316794aa2b5f443eaa596601136120291705f4c..817bd1ac1752eda439fc782eac3c68bff28a6d7c 100644 (file)
 #define MSR_CM         (1<<31) /* Computation Mode (0=32-bit, 1=64-bit) */
 
 #if defined(CONFIG_PPC_BOOK3E_64)
+#define MSR_64BIT      MSR_CM
+
 #define MSR_           MSR_ME | MSR_CE
-#define MSR_KERNEL      MSR_ | MSR_CM
+#define MSR_KERNEL     MSR_ | MSR_64BIT
 #define MSR_USER32     MSR_ | MSR_PR | MSR_EE | MSR_DE
-#define MSR_USER64     MSR_USER32 | MSR_CM | MSR_DE
+#define MSR_USER64     MSR_USER32 | MSR_64BIT
 #elif defined (CONFIG_40x)
 #define MSR_KERNEL     (MSR_ME|MSR_RI|MSR_IR|MSR_DR|MSR_CE)
 #define MSR_USER       (MSR_KERNEL|MSR_PR|MSR_EE)