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=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham 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 7EDF3C10F0E for ; Fri, 12 Apr 2019 20:39:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 510182171F for ; Fri, 12 Apr 2019 20:39:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727048AbfDLUjs (ORCPT ); Fri, 12 Apr 2019 16:39:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55582 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726771AbfDLUjr (ORCPT ); Fri, 12 Apr 2019 16:39:47 -0400 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 Cc: x86@kernel.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H . Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Jiri Kosina , Waiman Long , Andrea Arcangeli , Jon Masters , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Martin Schwidefsky , Heiko Carstens , linux-s390@vger.kernel.org, Catalin Marinas , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-arch@vger.kernel.org, Greg Kroah-Hartman , Tyler Hicks , Linus Torvalds , Randy Dunlap , Steven Price , Phil Auld 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) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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(-) -- 2.17.2