Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2449583yba; Mon, 15 Apr 2019 11:53:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqxwUJyO/HR8EyGHTkDDI8anjWVUSoiW4cHuwQXgfq7s+DSLy/Bwr0N4ToKFUqYi/OTFn1k2 X-Received: by 2002:a63:1048:: with SMTP id 8mr73189998pgq.70.1555354394346; Mon, 15 Apr 2019 11:53:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555354394; cv=none; d=google.com; s=arc-20160816; b=H0tmLv8AlysmUroo1kWf5kpWrqDb60nuOgvJJEc9oNmcFjcVq61xVDem8pBDEuDJUZ tIKVs1i9ubQn9Cr578xueRwdlwhPUUz5R47pdCAsEjWnIQ5M/xgcW7ccKjEldcXk+heO iFlckMYeK9/Q87OcDt6hbRXN98os5AGh9g1bWMNd5Okt9AGsXvz2rnOl01eqlBBAsHKb HfoOmA+VZSNxUbp3F4HYtzuUpk7hG65geV1f1JlTFd1piEwS9+2vxMsgdoGz2/i9NJos ORVIjyHupb7RKI3EtP0zfP36qW9d7ozf4OHjaJLfJnrxH4G+wOQVHmBdmmAObJ5hGMSB mnCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=a9iTEKGnaYJMd34LPXZpsP2FPm8kO0ISqq6DXRVZnAc=; b=d+QpeVaLy2sBAmufao+o+rowZ3JZ6Plu5M7JQzEgDKojxW3UdQTIHDpwjA5+tektF5 BcLspk2RzGBrn6bESPA0dilXFrZT9xSM5DJmQvtl+BBdkyu9NtdjtT1Uy0ibWsVq72F2 KRrxJCnuSmi/ckPF6Py8ahYkyaD2I/jiVvcKsxy+0WyIBaHn8yDqbLzQ/5spRB+WDV9D s1at2FgZudVS83PTUXdB66zvLBW7QejUukWfK8Ww11MN/gsLcieBgvECwksKy1rF/FPD B6BTIbJ4qkx5Ot8to0UnKGPj0SIeUk3fV+gY38xR7BRgyUZBjiEANI3UY49aR4WfVr65 FO4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ImyTXoP1; 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 v22si29712879pfm.151.2019.04.15.11.52.58; Mon, 15 Apr 2019 11:53:14 -0700 (PDT) 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; dkim=pass header.i=@kernel.org header.s=default header.b=ImyTXoP1; 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 S1728347AbfDOSpZ (ORCPT + 99 others); Mon, 15 Apr 2019 14:45:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:47730 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728323AbfDOSpV (ORCPT ); Mon, 15 Apr 2019 14:45:21 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D39702073F; Mon, 15 Apr 2019 18:45:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1555353920; bh=q2boAB+GXhD7hrUc9DboRLNoNeAm1pAOeTZnSCor8Lc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ImyTXoP1efvJgK/jCJUlGykvpfjgAw54vs5/y69TzU05secfNuSNv9muLgsMw0X/+ Iap432H93sbVrDScXTfQm7wxjVWKEbcTW2FAP/EzuMDp1YXr7w8kFMZOYUr46+woud zmcRQDUZaSNqAESY3JGMEAwMobzYc9QKKSJJFevA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Ellerman , Sasha Levin Subject: [PATCH 4.9 19/76] powerpc64s: Show ori31 availability in spectre_v1 sysfs file not v2 Date: Mon, 15 Apr 2019 20:43:43 +0200 Message-Id: <20190415183712.585770178@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190415183707.712011689@linuxfoundation.org> References: <20190415183707.712011689@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org commit 6d44acae1937b81cf8115ada8958e04f601f3f2e upstream. When I added the spectre_v2 information in sysfs, I included the availability of the ori31 speculation barrier. Although the ori31 barrier can be used to mitigate v2, it's primarily intended as a spectre v1 mitigation. Spectre v2 is mitigated by hardware changes. So rework the sysfs files to show the ori31 information in the spectre_v1 file, rather than v2. Currently we display eg: $ grep . spectre_v* spectre_v1:Mitigation: __user pointer sanitization spectre_v2:Mitigation: Indirect branch cache disabled, ori31 speculation barrier enabled After: $ grep . spectre_v* spectre_v1:Mitigation: __user pointer sanitization, ori31 speculation barrier enabled spectre_v2:Mitigation: Indirect branch cache disabled Fixes: d6fbe1c55c55 ("powerpc/64s: Wire up cpu_show_spectre_v2()") Cc: stable@vger.kernel.org # v4.17+ Signed-off-by: Michael Ellerman Signed-off-by: Sasha Levin --- arch/powerpc/kernel/security.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/kernel/security.c b/arch/powerpc/kernel/security.c index f189f946d935..bf298d0c475f 100644 --- a/arch/powerpc/kernel/security.c +++ b/arch/powerpc/kernel/security.c @@ -118,25 +118,35 @@ ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, cha ssize_t cpu_show_spectre_v1(struct device *dev, struct device_attribute *attr, char *buf) { - if (!security_ftr_enabled(SEC_FTR_BNDS_CHK_SPEC_BAR)) - return sprintf(buf, "Not affected\n"); + struct seq_buf s; + + seq_buf_init(&s, buf, PAGE_SIZE - 1); - if (barrier_nospec_enabled) - return sprintf(buf, "Mitigation: __user pointer sanitization\n"); + if (security_ftr_enabled(SEC_FTR_BNDS_CHK_SPEC_BAR)) { + if (barrier_nospec_enabled) + seq_buf_printf(&s, "Mitigation: __user pointer sanitization"); + else + seq_buf_printf(&s, "Vulnerable"); - return sprintf(buf, "Vulnerable\n"); + if (security_ftr_enabled(SEC_FTR_SPEC_BAR_ORI31)) + seq_buf_printf(&s, ", ori31 speculation barrier enabled"); + + seq_buf_printf(&s, "\n"); + } else + seq_buf_printf(&s, "Not affected\n"); + + return s.len; } ssize_t cpu_show_spectre_v2(struct device *dev, struct device_attribute *attr, char *buf) { - bool bcs, ccd, ori; struct seq_buf s; + bool bcs, ccd; seq_buf_init(&s, buf, PAGE_SIZE - 1); bcs = security_ftr_enabled(SEC_FTR_BCCTRL_SERIALISED); ccd = security_ftr_enabled(SEC_FTR_COUNT_CACHE_DISABLED); - ori = security_ftr_enabled(SEC_FTR_SPEC_BAR_ORI31); if (bcs || ccd) { seq_buf_printf(&s, "Mitigation: "); @@ -152,9 +162,6 @@ ssize_t cpu_show_spectre_v2(struct device *dev, struct device_attribute *attr, c } else seq_buf_printf(&s, "Vulnerable"); - if (ori) - seq_buf_printf(&s, ", ori31 speculation barrier enabled"); - seq_buf_printf(&s, "\n"); return s.len; -- 2.19.1