| From foo@baz Fri Mar 29 15:53:50 CET 2019 |
| From: Michael Ellerman <mpe@ellerman.id.au> |
| Date: Fri, 29 Mar 2019 22:26:09 +1100 |
| Subject: powerpc/fsl: Add macro to flush the branch predictor |
| To: stable@vger.kernel.org, gregkh@linuxfoundation.org |
| Cc: linuxppc-dev@ozlabs.org, diana.craciun@nxp.com, msuchanek@suse.de, christophe.leroy@c-s.fr |
| Message-ID: <20190329112620.14489-22-mpe@ellerman.id.au> |
| |
| From: Diana Craciun <diana.craciun@nxp.com> |
| |
| commit 1cbf8990d79ff69da8ad09e8a3df014e1494462b upstream. |
| |
| The BUCSR register can be used to invalidate the entries in the |
| branch prediction mechanisms. |
| |
| Signed-off-by: Diana Craciun <diana.craciun@nxp.com> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/powerpc/include/asm/ppc_asm.h | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| --- a/arch/powerpc/include/asm/ppc_asm.h |
| +++ b/arch/powerpc/include/asm/ppc_asm.h |
| @@ -802,4 +802,14 @@ END_FTR_SECTION_IFCLR(CPU_FTR_601) |
| stringify_in_c(.long (_target) - . ;) \ |
| stringify_in_c(.previous) |
| |
| +#ifdef CONFIG_PPC_FSL_BOOK3E |
| +#define BTB_FLUSH(reg) \ |
| + lis reg,BUCSR_INIT@h; \ |
| + ori reg,reg,BUCSR_INIT@l; \ |
| + mtspr SPRN_BUCSR,reg; \ |
| + isync; |
| +#else |
| +#define BTB_FLUSH(reg) |
| +#endif /* CONFIG_PPC_FSL_BOOK3E */ |
| + |
| #endif /* _ASM_POWERPC_PPC_ASM_H */ |