Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp3479325ybb; Mon, 6 Apr 2020 09:42:37 -0700 (PDT) X-Google-Smtp-Source: APiQypKsAq0UH+DTjJS5JmzON/uJnJJqewLdaE4OlUhjqnH+Ta0NmSZRv9Nxy/BBebwCGj/jNSCG X-Received: by 2002:a54:4181:: with SMTP id 1mr118613oiy.61.1586191357415; Mon, 06 Apr 2020 09:42:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586191357; cv=none; d=google.com; s=arc-20160816; b=asDXbPyyKoBekF4RYAN+PcmkZT4PHIYvwdPIiTvy5BrASanzwLqZGhMYmMP3Z3pO7X WY4ruuBWkIb1bUiR0SzXpPZOQVSYIdXjNy09ZTQOgHaNs1UA+Bi9YudLzSb/J3fNPlyF A63DYRCpx0/9LfW5eY65elxvSvLHOUKLSjTGEJJnI8thEkNKTTfBEAFXi2/N096axCDh E3ryP7trUjumtJvIy1gd0gzWHo+Cd46WV/AcKh/BKdxcu3Fuocis4CoUJ2Jy2E17ZYnI uYlA/WnJp+E7lAbO0UN5/rB1oh9g5GOaXL1zUV9zpr+xVtsiRy9mA2zU59yWK8RNTG2u gzwg== 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=9B6Bbg3gx9O6jKpvJ6qFzEYX2A3WHmV1/UUBgqymv0A=; b=wzft09IiMKUUhKhL+m/XZrYbCyjLM9lD58pUgdg1cUGfpTmibOmtHooh1nE5cms82t urLHdpZxUtOFjioQRFHZnSEbbtYoyoZsBv58rosdS9JdysjB633RtL/rAiZ7/vr88Z79 qtWygfplN55CSuc4VcYpkxibJwNZav9mmIZF9YcBAflDyBZgOV0T1iRRXNwqdBcaCiFk xlQWzKJ8lvNE08HQ/3KXPqB0MO0l5wpdjoCTsLjGMK7teGv1jdurWfwzrBqxLwRO0kUA axg30ZhjLteN16DMtoxLsnBCTKwbk5v0J43dKxzXL+m6bhMwpi4nshRqtESCAccTvfJG bxQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=HrWDz0fZ; 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 u3si34294oth.152.2020.04.06.09.42.25; Mon, 06 Apr 2020 09:42:37 -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=@google.com header.s=20161025 header.b=HrWDz0fZ; 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 S1729611AbgDFQlt (ORCPT + 99 others); Mon, 6 Apr 2020 12:41:49 -0400 Received: from mail-pg1-f202.google.com ([209.85.215.202]:37485 "EHLO mail-pg1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729608AbgDFQls (ORCPT ); Mon, 6 Apr 2020 12:41:48 -0400 Received: by mail-pg1-f202.google.com with SMTP id q15so4138pgb.4 for ; Mon, 06 Apr 2020 09:41:45 -0700 (PDT) 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=9B6Bbg3gx9O6jKpvJ6qFzEYX2A3WHmV1/UUBgqymv0A=; b=HrWDz0fZO75NK2vCDmhD/+I1qivG9oQ4qAVeDGVwVMfnHG2UMPDsy9o7I7DFuuos8b 1wMXq0iZh8/+0SOrfAKklcnAPfzQcpOOxTjvsBz0Vi0obIwCilmN41649T4n71L4/o4U LAdhGzV5hQoCG+zdFTTKQJpy0xQJRahkRKsMczLj6t4/jv9w74++Q58CRZVqcxunEXmb e/F51UD4+HJXaVRvm6gJ4a3RWNd/HZviv2qgqNNwJ3gi/p4aI5O/iHpykcrqnt5Z3sZ4 klV/kXyI+4SCreOsjka0bJe/27FDR4qvujrtwmGtRqMmKebKPVVef3jTwgHg8nxIVBQP CMtg== 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=9B6Bbg3gx9O6jKpvJ6qFzEYX2A3WHmV1/UUBgqymv0A=; b=lKkPwzrHQg6rmVYO8xG0eEz8Qya2MXC0K8UD1Uhzi7viDCNYyncevorSnYejvH4FvE 7M5F8oO65VJ+1QjAP4BLrUUP4J6RwROPwLwUUvWTEWsBn152SHU/oWxqe5zTfgcI39GO Wi+KaZDc2Tyt2tSDs7qTe/WEBIUeEF2xITfkdQRS07HuBmTbFou/66EujX9NYIJ4Ffmy 3Elerhwaq7hFRtou3xnnsM88hiRs1joA2cM767UNPG1HHWC+Wi4BfjlqseBfSWE7p/b9 rYnhhpKw2jvlewNrYVkigzwuZQC7g7wAhPMMWIL1vVPWyMiPbTBZ6IhZmFN3c9kta++I 1vGw== X-Gm-Message-State: AGi0Pub2QzbMTQCO18AWqKapIF008FHvY32UH4GM+0SxW3U7+4SrbeYu O7qVRq3vVKQTtsR+7KwrIT4FlS3s72SQUdbUP7M= X-Received: by 2002:a63:1662:: with SMTP id 34mr22378296pgw.117.1586191304990; Mon, 06 Apr 2020 09:41:44 -0700 (PDT) Date: Mon, 6 Apr 2020 09:41:14 -0700 In-Reply-To: <20200406164121.154322-1-samitolvanen@google.com> Message-Id: <20200406164121.154322-6-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> <20200406164121.154322-1-samitolvanen@google.com> X-Mailer: git-send-email 2.26.0.292.g33ef6b2f38-goog Subject: [PATCH v10 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 f15f92ba53e6..34277c60cdf9 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -76,6 +76,10 @@ branch-prot-flags-$(CONFIG_AS_HAS_PAC) += -Wa,-march=armv8.3-a KBUILD_CFLAGS += $(branch-prot-flags-y) 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.26.0.292.g33ef6b2f38-goog