Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp6397549ybv; Tue, 18 Feb 2020 16:12:13 -0800 (PST) X-Google-Smtp-Source: APXvYqwoW5zbItUVK/L1HwDx/3zTLVAc2/xGy7Oi62Zimvajy0tsrIjDKvmAOjMUA2/aF/UPVVjV X-Received: by 2002:a05:6830:1304:: with SMTP id p4mr18338627otq.327.1582071133573; Tue, 18 Feb 2020 16:12:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582071133; cv=none; d=google.com; s=arc-20160816; b=uUMM6sfuGI6E1sTtcSD7jACpBGgK2J80pSKHhMtcYG26/sTpiPsnHUwjgHE9EuYPeN cVM1gP3/gbsrxk+Ci6tqVt4RM9LoOTNM4xCJOUknFVJPHNpO8VBaLC3KvpkhV1zwKG+C uLCJAcIoCAMAND/nPo2C+QO6J3hN+VWYjI1/AKDyO1YsNGIt0Y2RFYlf8h3xvD+XqI2p FEHRZeowvQhorU2Mautep/4DoUYLd81pT3TWe6hzGmgYDwlKsu8yBcaOiA95m0i3iHX0 SAwmHDLvXkilB19hXnh3rqi8W+DqNdWfVMaYn7GG1dA97WleeMJ3BijUDBWy52K5nHU8 cSKw== 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=w7ZvjA54SkyrACiXjrZd53h5HHK1AGRW+9qlZiTQez1jJPJ6el66WdbH4yxbdMRmWv LKLMGfSy47P/N13UOaeXPno4ikfgKNtJmBjVShcrdJT1ELCLDAVpZ6l7rvFNireBf5Zy 0NhMKyhLFRmAKXU7Ijk2hI7TZ+X/v9e/bge9Gd9d1N9CkQFpCRa/AiDb2K4MzWU9kpgZ +DOqgM+26tAHlScnoYtj7my29TVq7BmFoll/ft71QMYYholtkd3yNMmS/D4BtZ5PiOsN LGFShjlJCVyP4As2HDDgJOF3uIC3OtiXdVKoIATSO1Z1HZFTaoCHXLsDqBeJxEyCkvch OTKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=YBtomVXu; 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 n18si207539otf.231.2020.02.18.16.11.46; Tue, 18 Feb 2020 16:12:13 -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=YBtomVXu; 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 S1727916AbgBSAIr (ORCPT + 99 others); Tue, 18 Feb 2020 19:08:47 -0500 Received: from mail-yb1-f202.google.com ([209.85.219.202]:39355 "EHLO mail-yb1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726482AbgBSAIr (ORCPT ); Tue, 18 Feb 2020 19:08:47 -0500 Received: by mail-yb1-f202.google.com with SMTP id y123so18770924yby.6 for ; Tue, 18 Feb 2020 16:08:45 -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=YBtomVXuPE9YKWIcFgIRjcpY7OwDiCsLehztaXeVLAlEBdRDN03lZks7iNSYV/g7SR YxwyOOS2qE1ncX0EtkhevaGgA4eK4/d1kVR8Hg7OyAFSsLcG+8dnY5snFDfpsTQCIxxk Y1QycxeImvPDBmdy/cdMsuRQ2xS8Byv29lIb2/F1iUiQ5v3EISXk2V2SZMi7+fb/+sgz yIlIllB9gAQECO2n6q3OXLzyGO6GXq0pDWI7W3azU/OOkDwoEA2BZeS9Am6cgqPFhcwW o5TiUUKtIpgyX4x2xGMPYUpfPZtDjUB8KEwnztoM4IaZg/X+0h3EF1cv4rd2sQGo8WFP UaHQ== 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=lkh0sJmo3HhkvN8rmD+LjTEFectk0RVYrKo481nx5MSW2jbQPAGfxq7euy2lozR+Rv XOwlH22eqEctrN1bgB0im5TLA1PeNp+jZZDra2LOsAE9mi1KVBpu6gWV5+FZpM5UJ7Xz ogUZ49bOTQF5W3WGX8R0XcnOAFelUAxjs+ohtiRNB0YYI03Le/oyNROptuvby82GL7wH hv48u/N1w/BrJhtG0OYQ7s0yuynGVJhXlTgbI3LGeo3QSuyiAF7i2sZUyRvqzH+7j7/q 2+wri3xjyWCnG/vs1Sb0P99S/tXhaRviKBOLoVJcrrdev8Tnw1ifEzcjGDB5YJdqWySE fTsw== X-Gm-Message-State: APjAAAWWQDs5t6Ua+3ukztSAd1rOybmr7RvWB1b+710v94LWdK6pj/Gw nRTQKa3rDVJ9u4PRh7Nh354UQkbV+5dB8EL0OgE= X-Received: by 2002:a81:57ce:: with SMTP id l197mr19086954ywb.235.1582070924606; Tue, 18 Feb 2020 16:08:44 -0800 (PST) Date: Tue, 18 Feb 2020 16:08:10 -0800 In-Reply-To: <20200219000817.195049-1-samitolvanen@google.com> Message-Id: <20200219000817.195049-6-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> <20200219000817.195049-1-samitolvanen@google.com> X-Mailer: git-send-email 2.25.0.265.gbab2e86ba0-goog Subject: [PATCH v8 05/12] arm64: reserve x18 from general allocation with SCS From: Sami Tolvanen To: Will Deacon , Catalin Marinas , Steven Rostedt , Masami Hiramatsu , Ard Biesheuvel , Mark Rutland , james.morse@arm.com 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