Re: [PATCH v4.4 backport 2/3] powerpc/64s: Simple RFI macro conversions

2018-02-23 Thread Michael Ellerman
Greg KH <g...@kroah.com> writes:

> On Fri, Feb 23, 2018 at 11:11:12PM +1100, Michael Ellerman wrote:
>> Michael Ellerman <m...@ellerman.id.au> writes:
>> > Subject: [PATCH v4.4 backport 2/3] powerpc/64s: Simple RFI macro 
>> > conversions
>>  ^
>>4.9
>> 
>> Gah, sorry just realised these last two have "v4.4" in the subject, but
>> it should be "4.9".
>
> Ah, good, I was wondering about that :)

Sorry for the confusion, I need to automate generation of the patch
subjects obviously :)

> I'll apply these after lunch...

Thanks.

cheers


Re: [PATCH v4.4 backport 2/3] powerpc/64s: Simple RFI macro conversions

2018-02-23 Thread Greg KH
On Fri, Feb 23, 2018 at 11:11:12PM +1100, Michael Ellerman wrote:
> Michael Ellerman <m...@ellerman.id.au> writes:
> > Subject: [PATCH v4.4 backport 2/3] powerpc/64s: Simple RFI macro conversions
>  ^
>4.9
> 
> Gah, sorry just realised these last two have "v4.4" in the subject, but
> it should be "4.9".

Ah, good, I was wondering about that :)

I'll apply these after lunch...

greg k-h


Re: [PATCH v4.4 backport 2/3] powerpc/64s: Simple RFI macro conversions

2018-02-23 Thread Michael Ellerman
Michael Ellerman <m...@ellerman.id.au> writes:
> Subject: [PATCH v4.4 backport 2/3] powerpc/64s: Simple RFI macro conversions
 ^
   4.9

Gah, sorry just realised these last two have "v4.4" in the subject, but
it should be "4.9".

cheers


[PATCH v4.4 backport 2/3] powerpc/64s: Simple RFI macro conversions

2018-02-22 Thread Michael Ellerman
From: Nicholas Piggin 

commit 222f20f140623ef6033491d0103ee0875fe87d35 upstream.

This commit does simple conversions of rfi/rfid to the new macros that
include the expected destination context. By simple we mean cases
where there is a single well known destination context, and it's
simply a matter of substituting the instruction for the appropriate
macro.

Signed-off-by: Nicholas Piggin 
[mpe: Backport to 4.9, use RFI_TO_KERNEL in idle_book3s.S]
Signed-off-by: Michael Ellerman 
---
 arch/powerpc/include/asm/exception-64s.h |  2 +-
 arch/powerpc/kernel/entry_64.S   | 14 +-
 arch/powerpc/kernel/exceptions-64s.S | 22 +++---
 arch/powerpc/kernel/idle_book3s.S|  7 ---
 arch/powerpc/kvm/book3s_hv_rmhandlers.S  |  7 +++
 arch/powerpc/kvm/book3s_rmhandlers.S |  7 +--
 arch/powerpc/kvm/book3s_segment.S|  4 ++--
 7 files changed, 35 insertions(+), 28 deletions(-)

diff --git a/arch/powerpc/include/asm/exception-64s.h 
b/arch/powerpc/include/asm/exception-64s.h
index cab6d2a46c41..903e76a9f158 100644
--- a/arch/powerpc/include/asm/exception-64s.h
+++ b/arch/powerpc/include/asm/exception-64s.h
@@ -242,7 +242,7 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
mtspr   SPRN_##h##SRR0,r12; \
mfspr   r12,SPRN_##h##SRR1; /* and SRR1 */  \
mtspr   SPRN_##h##SRR1,r10; \
-   h##rfid;\
+   h##RFI_TO_KERNEL;   \
b   .   /* prevent speculative execution */
 #define EXCEPTION_PROLOG_PSERIES_1(label, h)   \
__EXCEPTION_PROLOG_PSERIES_1(label, h)
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index c33b69d10919..2dc52e6d2af4 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -39,6 +39,11 @@
 #include 
 #include 
 #include 
+#ifdef CONFIG_PPC_BOOK3S
+#include 
+#else
+#include 
+#endif
 
 /*
  * System calls.
@@ -396,8 +401,7 @@ tabort_syscall:
mtmsrd  r10, 1
mtspr   SPRN_SRR0, r11
mtspr   SPRN_SRR1, r12
-
-   rfid
+   RFI_TO_USER
b   .   /* prevent speculative execution */
 #endif
 
@@ -1073,7 +1077,7 @@ _GLOBAL(enter_rtas)

mtspr   SPRN_SRR0,r5
mtspr   SPRN_SRR1,r6
-   rfid
+   RFI_TO_KERNEL
b   .   /* prevent speculative execution */
 
 rtas_return_loc:
@@ -1098,7 +1102,7 @@ rtas_return_loc:
 
mtspr   SPRN_SRR0,r3
mtspr   SPRN_SRR1,r4
-   rfid
+   RFI_TO_KERNEL
b   .   /* prevent speculative execution */
 
.align  3
@@ -1169,7 +1173,7 @@ _GLOBAL(enter_prom)
LOAD_REG_IMMEDIATE(r12, MSR_SF | MSR_ISF | MSR_LE)
andcr11,r11,r12
mtsrr1  r11
-   rfid
+   RFI_TO_KERNEL
 #endif /* CONFIG_PPC_BOOK3E */
 
 1: /* Return from OF */
diff --git a/arch/powerpc/kernel/exceptions-64s.S 
b/arch/powerpc/kernel/exceptions-64s.S
index d0be752ea86c..29892500e646 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -244,7 +244,7 @@ BEGIN_FTR_SECTION
LOAD_HANDLER(r12, machine_check_handle_early)
 1: mtspr   SPRN_SRR0,r12
mtspr   SPRN_SRR1,r11
-   rfid
+   RFI_TO_KERNEL
b   .   /* prevent speculative execution */
 2:
/* Stack overflow. Stay on emergency stack and panic.
@@ -280,7 +280,7 @@ machine_check_pSeries_0:
mtspr   SPRN_SRR0,r12
mfspr   r12,SPRN_SRR1
mtspr   SPRN_SRR1,r10
-   rfid
+   RFI_TO_KERNEL
b   .   /* prevent speculative execution */
 
 TRAMP_KVM_SKIP(PACA_EXMC, 0x200)
@@ -446,7 +446,7 @@ EXC_COMMON_BEGIN(machine_check_handle_early)
li  r3,MSR_ME
andcr10,r10,r3  /* Turn off MSR_ME */
mtspr   SPRN_SRR1,r10
-   rfid
+   RFI_TO_KERNEL
b   .
 2:
/*
@@ -464,7 +464,7 @@ EXC_COMMON_BEGIN(machine_check_handle_early)
 */
bl  machine_check_queue_event
MACHINE_CHECK_HANDLER_WINDUP
-   rfid
+   RFI_TO_USER_OR_KERNEL
 9:
/* Deliver the machine check to host kernel in V mode. */
MACHINE_CHECK_HANDLER_WINDUP
@@ -706,7 +706,7 @@ END_MMU_FTR_SECTION_IFCLR(MMU_FTR_TYPE_RADIX)
mtspr   SPRN_SRR0,r10
ld  r10,PACAKMSR(r13)
mtspr   SPRN_SRR1,r10
-   rfid
+   RFI_TO_KERNEL
b   .
 
 EXC_COMMON_BEGIN(unrecov_slb)
@@ -893,7 +893,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_REAL_LE)  
\
mtspr   SPRN_SRR0,r10 ; \
ld  r10,PACAKMSR(r13) ; \
mtspr   SPRN_SRR1,r10 ; \
-   rfid ;