From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4E10C4360F for ; Fri, 5 Apr 2019 14:55:28 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A431421726 for ; Fri, 5 Apr 2019 14:55:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Nglg0hIL"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="HA8WCfLN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A431421726 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=29ZeHuSTHmpNET9rAKHvbGZQpLpJ7cKROfz1RJwDks0=; b=Nglg0hILLjqZ66 kQZh6/3g2iItqyQCQEHN56AiDcawKuirL0Yd7IWTEaHubftLMYzYEyoyBgL+teSOAohDhHCMi7EK6 GKKTIU3OKbCYLDwyXK1gDsDMsB2+nFv4kjoEZF0jUQmr1UODAj9T3+7nvt2UmlCUBFrb6tVctDOix MdoDWF544iFQdtiiPsr/5X2LjA8qfNXRwnV24w1wwQuqLgNi1FFWf41cw32IQYz3EeifbvkDs8uK4 USLn83Z03xC9YHpQyqPpXEDBmDUUk5leGqM+zYpKKAyKxVLIN4hk69sQSOLiU+CCgX0YEKdUKcRf9 H2rMug7Xpe3e3bmPCEsg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hCQFV-0001SN-Ed; Fri, 05 Apr 2019 14:55:21 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hCQFU-0008Sz-8S for linux-arm-kernel@bombadil.infradead.org; Fri, 05 Apr 2019 14:55:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=szMj5NW+eZTl3JQTUcEMVwJg91dk3rjygU0Dw3AAzls=; b=HA8WCfLNGV1KOeym2g/ECVUk6A KTI5izlwsMETGumhyyEYwhQTTgGT04P7SOYQkAiFI8dkSv5S/9AhJDmkJQzH0kmndQEiu8W4WL7N5 V/yFrB/drEnxEAqccprfGwx7NnXCCoH8UV4ssGCb8uK6t5ptOXLbE/ZMUM8VV4QPcdL6ocIbvZx3s xexB9kytChtEvEwNJH7y+KEBNwvShjQFkA8eB4QlIiIDAVuy0K3YNcOW6hIOXGAtsu/6yQh70E3rE z0mUU133/x6jYd8jKJdBaV0zemoK+tjkcFU6hvRfyLVx1GehTBPiYY+b/bXgQ8q/Zv+MUDkDiPvkP GtQbjHyQ==; Received: from foss.arm.com ([217.140.101.70]) by casper.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hCQ0j-0001tZ-Ld for linux-arm-kernel@lists.infradead.org; Fri, 05 Apr 2019 14:40:08 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8218C16A3; Fri, 5 Apr 2019 07:40:04 -0700 (PDT) Received: from [10.1.196.69] (e112269-lin.cambridge.arm.com [10.1.196.69]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1593E3F68F; Fri, 5 Apr 2019 07:39:59 -0700 (PDT) Subject: Re: [PATCH RFC 5/5] arm64/speculation: Add support for 'cpu_spec_mitigations=' cmdline options To: Josh Poimboeuf , linux-kernel@vger.kernel.org References: <5f70df57b19bbccc4a0d5d76134b4681c9a50b0b.1554396090.git.jpoimboe@redhat.com> From: Steven Price Message-ID: Date: Fri, 5 Apr 2019 15:39:58 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <5f70df57b19bbccc4a0d5d76134b4681c9a50b0b.1554396090.git.jpoimboe@redhat.com> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190405_154006_506316_C47B9C54 X-CRM114-Status: GOOD ( 19.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Zijlstra , Catalin Marinas , Heiko Carstens , Paul Mackerras , "H . Peter Anvin" , Ingo Molnar , Andrea Arcangeli , linux-s390@vger.kernel.org, Michael Ellerman , x86@kernel.org, linux-arm-kernel@lists.infradead.org, Benjamin Herrenschmidt , Waiman Long , linux-arch@vger.kernel.org, Will Deacon , Jiri Kosina , linuxppc-dev@lists.ozlabs.org, Borislav Petkov , Andy Lutomirski , Thomas Gleixner , Jon Masters , Greg Kroah-Hartman , Tyler Hicks , Martin Schwidefsky , Linus Torvalds Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 04/04/2019 17:44, Josh Poimboeuf wrote: > Configure arm64 runtime CPU speculation bug mitigations in accordance > with the 'cpu_spec_mitigations=' cmdline options. This affects > Meltdown and Speculative Store Bypass. > > The default behavior is unchanged. > > Signed-off-by: Josh Poimboeuf > --- > Documentation/admin-guide/kernel-parameters.txt | 2 ++ > arch/arm64/kernel/cpu_errata.c | 4 ++++ > arch/arm64/kernel/cpufeature.c | 6 ++++++ > 3 files changed, 12 insertions(+) > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt > index e838af96daa4..0b54385ee7a8 100644 > --- a/Documentation/admin-guide/kernel-parameters.txt > +++ b/Documentation/admin-guide/kernel-parameters.txt > @@ -2553,11 +2553,13 @@ > off > Disable all speculative CPU mitigations. > Equivalent to: nopti [x86, powerpc] > + kpti=0 [arm64] > nospectre_v1 [powerpc] > nospectre_v2 [x86, powerpc, s390] > spectre_v2_user=off [x86] > nobp=0 [s390] > spec_store_bypass_disable=off [x86, powerpc] > + ssbd=force-off [arm64] > l1tf=off [x86] > > auto (default) > diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c > index 9950bb0cbd52..db8d27e3fb1c 100644 > --- a/arch/arm64/kernel/cpu_errata.c > +++ b/arch/arm64/kernel/cpu_errata.c > @@ -19,6 +19,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -385,6 +386,9 @@ static bool has_ssbd_mitigation(const struct arm64_cpu_capabilities *entry, > return false; > } > > + if (cpu_spec_mitigations == CPU_SPEC_MITIGATIONS_OFF) > + ssbd_state = ARM64_SSBD_FORCE_DISABLE; > + > switch (psci_ops.conduit) { > case PSCI_CONDUIT_HVC: > arm_smccc_1_1_hvc(ARM_SMCCC_ARCH_FEATURES_FUNC_ID, > diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c > index 4061de10cea6..4512b582d50f 100644 > --- a/arch/arm64/kernel/cpufeature.c > +++ b/arch/arm64/kernel/cpufeature.c > @@ -25,6 +25,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -978,6 +979,11 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry, > __kpti_forced = -1; > } > > + if (cpu_spec_mitigations == CPU_SPEC_MITIGATIONS_OFF) { > + str = "cpu_spec_mitigations=off"; Might also be worth changing the initialisation of str, currently it is: > char const *str = "command line option"; But now we have two command line options, perhaps "kpti command line option". Steve > + __kpti_forced = -1; > + } > + > /* Forced? */ > if (__kpti_forced) { > pr_info_once("kernel page table isolation forced %s by %s\n", > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel