Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp3929124ybv; Tue, 25 Feb 2020 09:50:40 -0800 (PST) X-Google-Smtp-Source: APXvYqxxK+DgcbOtBE9UCXwsRNoD2w0ar8q6Ys233R/sNVXMZpotpdDOxHYNCcI6wv3m6JhGxCjR X-Received: by 2002:a05:6830:12d5:: with SMTP id a21mr46858263otq.296.1582653040165; Tue, 25 Feb 2020 09:50:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582653040; cv=none; d=google.com; s=arc-20160816; b=FI97Fv5A8E02DEgv68uUES05IQcJitpyvdeSM78cB4x/MOG8ga3uM3DKHPS3lOYmx7 u3Al+izPl5xHNnInWBhdCGKTzsO40ryhVgCY05+1Inq7l9hinILhosZwiQ5dcPZgYNEH iTgcvyfaQJ2oGFOJWcm9jOyjhtdltMyW0eaFX77f/lk2wB+W//SwWUCfGNiGRIyCdbJZ pS2nbPxAsaJBBgk7ghr1YKFSkjnSCE5/4GV1U3Rnz8XJkm9CUfm6Y5rghm/nGtA3ii/j ik+7OCJSzUcDfi1FleS737z9CyyY7Z1b16b26DCS1fr2pIig0k2xH4tdU1PKTw7aLYYm tPrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=jVKqEF9zEsFZTQz5E/s7PAlXyZsbPgu1MND2Fom4HAc=; b=L4sfaPFtytriZ9K1kcYAY6U8WaryxzLjMpWy6hd/R/DNNjGf4iS6rRMcLwT6Y0lxLd ihsUe5GDFfdWVnGfMh/91gfFi9evvPVRAVIVRn08F05EOyI5a0NJrXMBfcY1xAAeY2AF Rux3RmCdGxkOjtiEbeo5WzTZg6VA/gSpVGH78nVqYyKRaXqUcg24uGM/W9vH+SiDian1 8uskGRG8DOL9K/2eqEmuki3m4l9mvH8uMzRILLZvJaI8/lfyyEThqc7q5+/e9gZsFIEZ yLmhOuoVbE6b94+yqJWqsmIYX9dAb+7uKEuBIMOWHcf/9PjCOQgkwKBLhDrnWPALtG/m uEvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="V+O8aB/k"; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v13si8254006otp.273.2020.02.25.09.50.28; Tue, 25 Feb 2020 09:50:40 -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; dkim=pass header.i=@google.com header.s=20161025 header.b="V+O8aB/k"; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731059AbgBYRkD (ORCPT + 99 others); Tue, 25 Feb 2020 12:40:03 -0500 Received: from mail-pf1-f202.google.com ([209.85.210.202]:34449 "EHLO mail-pf1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730704AbgBYRkB (ORCPT ); Tue, 25 Feb 2020 12:40:01 -0500 Received: by mail-pf1-f202.google.com with SMTP id q5so9747702pfh.1 for ; Tue, 25 Feb 2020 09:40:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=jVKqEF9zEsFZTQz5E/s7PAlXyZsbPgu1MND2Fom4HAc=; b=V+O8aB/kkUO8xqMJE51PIQtZsppsJth+56C9mzqs3rHEUWYqsaBskb5C8HPCIPzcS0 KLPMyT4P8jAjhfw3HtS6Zd2Bb5U4/swuVVbMREAIk3jxj7rYDCvJV69tJYOtu8AUZqQf z2JnJ+dqNTgOx86Zx5X0AKcPG1QBderHLqB7MhI+u/50ASt0GTaqJITfIYTKWJX1nDlb MH5KYE7gNzyqd1gGbRsR7gUtF6BdQMWSviF1MHJ423kF5K89MmBFjiBcyN5dmGhPgq/S lhVwlyp4UFisGTJT9QGrdtvE2NZMU8DEbTuhfkbOuZMSqCeD2QDwyktTVpa+TfqPqQwZ EwDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=jVKqEF9zEsFZTQz5E/s7PAlXyZsbPgu1MND2Fom4HAc=; b=bB0643tpw48pF10lIm5f4CF9ObcLJ4YLTmtYsr0DeLVWoTy9PuUAJrS8MEDcTxNTnV iX0sAKBHcjKLwdbceRaI6Pf2El7XR/TVzUPb3M1krrQZC3U/HgmdclY/GqVsp/M63N3v Akr0/+uIhltJF6cKW3TYcD6ZUjLW90h9et7D4T6sUWSn3m7V4H13X8LZkeGnDtCY+3f5 3FixSqnuVs1QzrNoAz/lECrlgIhxwbHzBXsw1lFHMSz6Yi5zmttDv3B4ZcDKnFQs9MrZ pH7QSID5nhPg28alRs5uk+9RPZzaEirulC9A50pY5EaPufZBulCk8LqIVnEB48ZaCvwW qXyw== X-Gm-Message-State: APjAAAVXDpKSIfln8HWUrtIVHg3sB6a3jGsEvf/GUshoDuVQwwxrjo1G hsn3HPjzuAAQYWBZw7AYxbp6xZYqUZUwUuAGR2A= X-Received: by 2002:a63:e04a:: with SMTP id n10mr57879618pgj.341.1582652401052; Tue, 25 Feb 2020 09:40:01 -0800 (PST) Date: Tue, 25 Feb 2020 09:39:26 -0800 In-Reply-To: <20200225173933.74818-1-samitolvanen@google.com> Message-Id: <20200225173933.74818-6-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> <20200225173933.74818-1-samitolvanen@google.com> X-Mailer: git-send-email 2.25.0.265.gbab2e86ba0-goog Subject: [PATCH v9 05/12] arm64: reserve x18 from general allocation with SCS From: Sami Tolvanen To: Will Deacon , Catalin Marinas , James Morse , Steven Rostedt , Masami Hiramatsu , Ard Biesheuvel , Mark Rutland Cc: Dave Martin , Kees Cook , Laura Abbott , Marc Zyngier , Nick Desaulniers , Jann Horn , Miguel Ojeda , Masahiro Yamada , clang-built-linux@googlegroups.com, kernel-hardening@lists.openwall.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sami Tolvanen 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 Reserve the x18 register from general allocation when SCS is enabled, because the compiler uses the register to store the current task's shadow stack pointer. Note that all external kernel modules must also be compiled with -ffixed-x18 if the kernel has SCS enabled. Signed-off-by: Sami Tolvanen Reviewed-by: Nick Desaulniers Reviewed-by: Kees Cook Acked-by: Will Deacon --- arch/arm64/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index dca1a97751ab..ab26b448faa9 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -65,6 +65,10 @@ stack_protector_prepare: prepare0 include/generated/asm-offsets.h)) endif +ifeq ($(CONFIG_SHADOW_CALL_STACK), y) +KBUILD_CFLAGS += -ffixed-x18 +endif + ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) KBUILD_CPPFLAGS += -mbig-endian CHECKFLAGS += -D__AARCH64EB__ -- 2.25.0.265.gbab2e86ba0-goog