Patch "powerpc/powernv: Check device-tree for RFI flush settings" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
powerpc/powernv: Check device-tree for RFI flush settings
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
powerpc-powernv-check-device-tree-for-rfi-flush-settings.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
6e032b350cd1fdb830f18f8320ef0e13b4e24094Mon Sep 17 00:00:00 2001
From: Oliver O'Halloran <[email protected]>
Date: Wed, 10 Jan 2018 03:07:15 +1100
Subject: powerpc/powernv: Check device-tree for RFI flush settings
From: Oliver O'Halloran <[email protected]>
commit 6e032b350cd1fdb830f18f8320ef0e13b4e24094 upstream.
New device-tree properties are available which tell the hypervisor settings related to the RFI flush. Use them to determine the appropriate flush instruction to use, and whether the flush is required.
--- arch/powerpc/platforms/powernv/setup.c | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+)
arch/powerpc/platforms/powernv/setup.c +50 -0
@@ -35,13 +35,63 @@#include <asm/opal.h> #include <asm/kexec.h> #include <asm/smp.h> +#include <asm/tm.h> +#include <asm/setup.h> #include "powernv.h" +static void pnv_setup_rfi_flush (void ) +{ +struct device_node *np, *fw_features; +enum l1d_flush_type type; +int enable; + +/* Default to fallback in case fw-features are not available */ + type =L1D_FLUSH_FALLBACK ; + enable =1 ; + + np =of_find_node_by_name (NULL ,"ibm,opal" ); + fw_features =of_get_child_by_name (np,"fw-features" ); +of_node_put (np); + +if (fw_features) { + np =of_get_child_by_name (fw_features,"inst-l1d-flush-trig2" ); +if (np &&of_property_read_bool (np,"enabled" )) + type =L1D_FLUSH_MTTRIG ; + +of_node_put (np); + + np =of_get_child_by_name (fw_features,"inst-l1d-flush-ori30,30,0" ); +if (np &&of_property_read_bool (np,"enabled" )) + type =L1D_FLUSH_ORI ; + +of_node_put (np); + +/* Enable unless firmware says NOT to */ + enable =2 ; + np =of_get_child_by_name (fw_features,"needs-l1d-flush-msr-hv-1-to-0" ); +if (np &&of_property_read_bool (np,"disabled" )) + enable--; + +of_node_put (np); + + np =of_get_child_by_name (fw_features,"needs-l1d-flush-msr-pr-0-to-1" ); +if (np &&of_property_read_bool (np,"disabled" )) + enable--; + +of_node_put (np); +of_node_put (fw_features); + } + +setup_rfi_flush (type, enable >0 ); +} +static void __init pnv_setup_arch (void ) {set_arch_panic_timeout (10 ,ARCH_PANIC_TIMEOUT ); +pnv_setup_rfi_flush (); +/* Initialize SMP */ pnv_smp_init ();
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/powerpc-64-fix-flush_-d-i-cache_range-called-from-modules.patch queue-4.4/powerpc-powernv-check-device-tree-for-rfi-flush-settings.patch