diff options
Diffstat (limited to 'arch/powerpc/kernel/vector.S')
| -rw-r--r-- | arch/powerpc/kernel/vector.S | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/arch/powerpc/kernel/vector.S b/arch/powerpc/kernel/vector.S index ba03eedfdcd8..5cc24d8cce94 100644 --- a/arch/powerpc/kernel/vector.S +++ b/arch/powerpc/kernel/vector.S @@ -47,6 +47,10 @@ EXPORT_SYMBOL(store_vr_state)   */  _GLOBAL(load_up_altivec)  	mfmsr	r5			/* grab the current MSR */ +#ifdef CONFIG_PPC_BOOK3S_64 +	/* interrupt doesn't set MSR[RI] and HPT can fault on current access */ +	ori	r5,r5,MSR_RI +#endif  	oris	r5,r5,MSR_VEC@h  	MTMSRD(r5)			/* enable use of AltiVec now */  	isync @@ -126,6 +130,12 @@ _GLOBAL(load_up_vsx)  	andis.	r5,r12,MSR_VEC@h  	beql+	load_up_altivec		/* skip if already loaded */ +#ifdef CONFIG_PPC_BOOK3S_64 +	/* interrupt doesn't set MSR[RI] and HPT can fault on current access */ +	li	r5,MSR_RI +	mtmsrd	r5,1 +#endif +  	ld	r4,PACACURRENT(r13)  	addi	r4,r4,THREAD		/* Get THREAD */  	li	r6,1 |