| From foo@baz Mon Nov 15 03:31:49 PM CET 2021 |
| From: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> |
| Date: Mon, 15 Nov 2021 16:36:03 +0530 |
| Subject: powerpc/security: Add a helper to query stf_barrier type |
| To: <stable@vger.kernel.org> |
| Cc: Michael Ellerman <mpe@ellerman.id.au>, Daniel Borkmann <daniel@iogearbox.net> |
| Message-ID: <06399607dfbc4a20e30700cd6b07f4a8c8491672.1636963359.git.naveen.n.rao@linux.vnet.ibm.com> |
| |
| From: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> |
| |
| upstream commit 030905920f32e91a52794937f67434ac0b3ea41a |
| |
| Add a helper to return the stf_barrier type for the current processor. |
| |
| Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Link: https://lore.kernel.org/r/3bd5d7f96ea1547991ac2ce3137dc2b220bae285.1633464148.git.naveen.n.rao@linux.vnet.ibm.com |
| Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/powerpc/include/asm/security_features.h | 5 +++++ |
| arch/powerpc/kernel/security.c | 5 +++++ |
| 2 files changed, 10 insertions(+) |
| |
| --- a/arch/powerpc/include/asm/security_features.h |
| +++ b/arch/powerpc/include/asm/security_features.h |
| @@ -39,6 +39,11 @@ static inline bool security_ftr_enabled( |
| return !!(powerpc_security_features & feature); |
| } |
| |
| +#ifdef CONFIG_PPC_BOOK3S_64 |
| +enum stf_barrier_type stf_barrier_type_get(void); |
| +#else |
| +static inline enum stf_barrier_type stf_barrier_type_get(void) { return STF_BARRIER_NONE; } |
| +#endif |
| |
| // Features indicating support for Spectre/Meltdown mitigations |
| |
| --- a/arch/powerpc/kernel/security.c |
| +++ b/arch/powerpc/kernel/security.c |
| @@ -256,6 +256,11 @@ static int __init handle_no_stf_barrier( |
| |
| early_param("no_stf_barrier", handle_no_stf_barrier); |
| |
| +enum stf_barrier_type stf_barrier_type_get(void) |
| +{ |
| + return stf_enabled_flush_types; |
| +} |
| + |
| /* This is the generic flag used by other architectures */ |
| static int __init handle_ssbd(char *p) |
| { |