Received: by 10.223.176.46 with SMTP id f43csp2673342wra; Mon, 22 Jan 2018 01:19:51 -0800 (PST) X-Google-Smtp-Source: AH8x2259qgLvD+lBuSMOEed99qRs34ag184tbbqmnK8ypoiWhfp7JJe3sfyWKoP1DpJQGzwKaIDa X-Received: by 10.99.63.11 with SMTP id m11mr891219pga.422.1516612791199; Mon, 22 Jan 2018 01:19:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516612791; cv=none; d=google.com; s=arc-20160816; b=VZSXje8Yrk2TlOETu0W3GWPY/srOa2G9eIkzKrwlIv4YqttP5QOPjaj83PMcLrZ9K1 x+y1d/OshqOnocC/fS054WUW5Gf9hHUNuPh2++iK2cg+9uedCgVWcNTa/BdlCIB+Z9wK t5RW9fV9JFZ2xDs+WUrldqJL/wwQDJoSwkHBx+anb1iFahItGzUuJB9biKHNry7avLuk qQLpDMIDLlPwx6OB78VM9/fbDErs1e5NPNwTfru/yiDUmyHK7I413CwT1QaAW11edsYr r9/yieYoMaixth8DZexjg4re0w0lSyNkXrQzOR9MrRZ8VIF0FLSDcPjGW97M9qRb1nkn HtlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=q55H7oeT3wZATggoVLcVuwDB5IHvyAN4RKaCBRaL/VQ=; b=fHzpNugOFtJEfbtW8D8SH4Z1hquVVsFmhCRq6tPHAsK4jUBWoyRmNUySiBG67J1igB xoRt/GT+vKPCnIpCBUdNvQtU1M25pPmJozPb1gghpXorPToKNNDWBlm6RCn2gX0qkvJX 9H6cfu7Txr3He0xPV3AaR3k7XVbDsAFRwebTuRbnW6cqibAMEa9jVJCwA6jc4IvnTH1n 8U4IOgQ1cRYfupIin2rdO3A9QKCdad5h6gGJQl4rSLmThA74b9KjhBb3y0WRHuibvTXC DdSTIQuAs5Zn0VgzEdIjAgrCUo3txcUV8Ll5fntiEsMQuu72+M7R2L6r45i0fc2dzrwx bSwQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o12si13452623pgn.121.2018.01.22.01.19.36; Mon, 22 Jan 2018 01:19:51 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752258AbeAVIun (ORCPT + 99 others); Mon, 22 Jan 2018 03:50:43 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:33018 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752679AbeAVIuk (ORCPT ); Mon, 22 Jan 2018 03:50:40 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id C4E0DD08; Mon, 22 Jan 2018 08:50:39 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Oliver OHalloran , Michael Ellerman Subject: [PATCH 4.14 15/89] powerpc/powernv: Check device-tree for RFI flush settings Date: Mon, 22 Jan 2018 09:44:55 +0100 Message-Id: <20180122083956.217589929@linuxfoundation.org> X-Mailer: git-send-email 2.16.0 In-Reply-To: <20180122083954.683903493@linuxfoundation.org> References: <20180122083954.683903493@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Oliver O'Halloran 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. Signed-off-by: Oliver O'Halloran Signed-off-by: Michael Ellerman Signed-off-by: Greg Kroah-Hartman --- arch/powerpc/platforms/powernv/setup.c | 49 +++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) --- a/arch/powerpc/platforms/powernv/setup.c +++ b/arch/powerpc/platforms/powernv/setup.c @@ -36,13 +36,62 @@ #include #include #include +#include #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();