From patchwork Fri Apr 12 20:39:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josh Poimboeuf X-Patchwork-Id: 10899123 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 846ED13B5 for ; Fri, 12 Apr 2019 20:39:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5F89727816 for ; Fri, 12 Apr 2019 20:39:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 52D6A28346; Fri, 12 Apr 2019 20:39:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E579727816 for ; Fri, 12 Apr 2019 20:39:52 +0000 (UTC) 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:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=dZfBLA0aIYwutV84SuYpAxaeAv71JlP3FECeX00V1vg=; b=Lqw d3niQpNtKSrlTJWJyM4EL4SXxTY06zGCv5jOJFGmplcvRprr05Rcmee0EZ1qisgmfSWUNwPFOD9xk xKPsZlOFvwH6qmtmn1vtlYmMyj6VKyX3Pzd99bmEBzWOtkao9iAXortuj+PU0DGW6ITho/Ed0Gbqn btkCvynfD3lNY2sg+e+U8srfmcTWlOhsDyODxuFjLrj5lA2mSynJm1MGKMZXb2N41vBf6xfEzu33a 2Acq6FX5pW0f7x5CPxmU0KreygeiwFcDoQWLFaYyp34pxbdA5caX8mBtlAp8tXDpQmg2uQzpfIrUO cDuRX7yV9jvSeNyGS76t0ftiin3C2QA==; 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 1hF2xk-0003Co-0G; Fri, 12 Apr 2019 20:39:52 +0000 Received: from mx1.redhat.com ([209.132.183.28]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hF2xg-0003C8-G3 for linux-arm-kernel@lists.infradead.org; Fri, 12 Apr 2019 20:39:49 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1AE92C13070B; Fri, 12 Apr 2019 20:39:47 +0000 (UTC) Received: from treble.redhat.com (ovpn-120-231.rdu2.redhat.com [10.10.120.231]) by smtp.corp.redhat.com (Postfix) with ESMTP id 347B6600C2; Fri, 12 Apr 2019 20:39:41 +0000 (UTC) From: Josh Poimboeuf To: linux-kernel@vger.kernel.org Subject: [PATCH v2 0/5] cpu/speculation: Add 'mitigations=' cmdline option Date: Fri, 12 Apr 2019 15:39:27 -0500 Message-Id: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 12 Apr 2019 20:39:47 +0000 (UTC) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190412_133948_569841_DCF74740 X-CRM114-Status: GOOD ( 12.72 ) 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 , Benjamin Herrenschmidt , Heiko Carstens , Paul Mackerras , "H . Peter Anvin" , Ingo Molnar , Andrea Arcangeli , linux-s390@vger.kernel.org, Michael Ellerman , x86@kernel.org, Will Deacon , Steven Price , Linus Torvalds , Catalin Marinas , Waiman Long , linux-arch@vger.kernel.org, Jon Masters , Jiri Kosina , Borislav Petkov , Andy Lutomirski , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, Phil Auld , Greg Kroah-Hartman , Randy Dunlap , Tyler Hicks , Martin Schwidefsky , linuxppc-dev@lists.ozlabs.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP v2: - docs improvements: [Randy, Michael] - Rename to "mitigations=" [Michael] - Add cpu_mitigations_off() function wrapper [Michael] - x86: Simplify logic [Boris] - powerpc: Fix no_rfi_flush checking bug (use '&&' instead of '||') - arm64: Rebase onto Jeremy Linton's v7 patches [Will] - arm64: "kpti command line option" [Steve P] - arm64: Add nospectre_v2 support ----------- Keeping track of the number of mitigations for all the CPU speculation bugs has become overwhelming for many users. It's getting more and more complicated to decide which mitigations are needed for a given architecture. Complicating matters is the fact that each arch tends to have its own custom way to mitigate the same vulnerability. Most users fall into a few basic categories: a) they want all mitigations off; b) they want all reasonable mitigations on, with SMT enabled even if it's vulnerable; or c) they want all reasonable mitigations on, with SMT disabled if vulnerable. Define a set of curated, arch-independent options, each of which is an aggregation of existing options: - mitigations=off: Disable all mitigations. - mitigations=auto: [default] Enable all the default mitigations, but leave SMT enabled, even if it's vulnerable. - mitigations=auto,nosmt: Enable all the default mitigations, disabling SMT if needed by a mitigation. Josh Poimboeuf (5): cpu/speculation: Add 'mitigations=' cmdline option x86/speculation: Support 'mitigations=' cmdline option powerpc/speculation: Support 'mitigations=' cmdline option s390/speculation: Support 'mitigations=' cmdline option arm64/speculation: Support 'mitigations=' cmdline option .../admin-guide/kernel-parameters.txt | 34 +++++++++++++++++++ arch/arm64/kernel/cpu_errata.c | 6 +++- arch/arm64/kernel/cpufeature.c | 8 ++++- arch/powerpc/kernel/security.c | 6 ++-- arch/powerpc/kernel/setup_64.c | 2 +- arch/s390/kernel/nospec-branch.c | 3 +- arch/x86/kernel/cpu/bugs.c | 11 ++++-- arch/x86/mm/pti.c | 4 ++- include/linux/cpu.h | 24 +++++++++++++ kernel/cpu.c | 15 ++++++++ 10 files changed, 103 insertions(+), 10 deletions(-) Tested-by: Jiri Kosina (on x86) Reviewed-by: Jiri Kosina