| 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:07 +1100 |
| Subject: powerpc/powernv: Query firmware for count cache flush settings |
| 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-20-mpe@ellerman.id.au> |
| |
| From: Michael Ellerman <mpe@ellerman.id.au> |
| |
| commit 99d54754d3d5f896a8f616b0b6520662bc99d66b upstream. |
| |
| Look for fw-features properties to determine the appropriate settings |
| for the count cache flush, and then call the generic powerpc code to |
| set it up based on the security feature flags. |
| |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/powerpc/platforms/powernv/setup.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| --- a/arch/powerpc/platforms/powernv/setup.c |
| +++ b/arch/powerpc/platforms/powernv/setup.c |
| @@ -77,6 +77,12 @@ static void init_fw_feat_flags(struct de |
| if (fw_feature_is("enabled", "fw-count-cache-disabled", np)) |
| security_ftr_set(SEC_FTR_COUNT_CACHE_DISABLED); |
| |
| + if (fw_feature_is("enabled", "fw-count-cache-flush-bcctr2,0,0", np)) |
| + security_ftr_set(SEC_FTR_BCCTR_FLUSH_ASSIST); |
| + |
| + if (fw_feature_is("enabled", "needs-count-cache-flush-on-context-switch", np)) |
| + security_ftr_set(SEC_FTR_FLUSH_COUNT_CACHE); |
| + |
| /* |
| * The features below are enabled by default, so we instead look to see |
| * if firmware has *disabled* them, and clear them if so. |
| @@ -123,6 +129,7 @@ static void pnv_setup_rfi_flush(void) |
| security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV)); |
| |
| setup_rfi_flush(type, enable); |
| + setup_count_cache_flush(); |
| } |
| |
| static void __init pnv_setup_arch(void) |