Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp1016818ybx; Fri, 1 Nov 2019 15:13:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqzQhEISMTDWJhzRnzZrgpCTWED8zUXsAT3zN7A7Ff4In2t68DCm6soT3JjGy8gIakcDIgw7 X-Received: by 2002:a50:ec0e:: with SMTP id g14mr15354266edr.274.1572646429924; Fri, 01 Nov 2019 15:13:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572646429; cv=none; d=google.com; s=arc-20160816; b=SVTZtV6gHW4TYaoDJcQpo20mm5OQOozaCq5y8Qh6nyFKeiGke7RPCPIPSsDY0ivXVK NMxPeDiyMp15ufLHdcVJyw250Lc+lMbGMBRi7BCLPnXgyxSK8jP9SMhPdD9BO6wpc9jm n84KDOtvQ7qhb/YDaA3eK00318dEePz7BNzK/TDJh74woocghrH+QfvsRzPZy2vasBGj yz2piO347PD9KGRr32S0e3QzR63n9vSmaE09MKHd6AXjONpTaDgJNkTCjRPPFW85Elsd vn7AT5WOM8vjGx6L5Y8VjWy/69un6s7VtJrDpmY9ER53op0HOBs3BX3G6aJlFqhFyyFp Vpwg== 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=xr3X122JfUZTOJ9HNPiJpW+Iyor6r4hGY/b4sjNxJZA=; b=PRobJY/OHxhhWDrzScncVAX0B6L+G5pn91V9c0uU62D65T5NA8k6RzYMTdqD1WrumC wWUA5/hBYSTcXIAN8PwbNayb2p4AA1eBu7CsSIiKoSPMs0D90blqrlVxp0ngKljH1In2 PekL6W3E5MOEkUsTO9jl7mzZgWyXVPrU5j9Xr1dKCyG9ZB7yEKlNOk9xH0FID05KUm0D NMa6tUV27rDCw2r0heHHscsTIndbik4r4mcDuYie53BOpOcS4XLQW0jeSDoUfuiy+L3y elPOXLMYBx13Rk6PKw8NxJ9zjBQTnemqiGIyp4VuRoXVvMqEOXKmSSq8owzTMRBXsIen nMlA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=iJRBiSEs; 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 x51si1618506edd.393.2019.11.01.15.13.27; Fri, 01 Nov 2019 15:13:49 -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=iJRBiSEs; 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 S1727995AbfKAWM3 (ORCPT + 99 others); Fri, 1 Nov 2019 18:12:29 -0400 Received: from mail-pg1-f202.google.com ([209.85.215.202]:36833 "EHLO mail-pg1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727984AbfKAWM2 (ORCPT ); Fri, 1 Nov 2019 18:12:28 -0400 Received: by mail-pg1-f202.google.com with SMTP id h12so8049596pgd.3 for ; Fri, 01 Nov 2019 15:12:26 -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=xr3X122JfUZTOJ9HNPiJpW+Iyor6r4hGY/b4sjNxJZA=; b=iJRBiSEsCdhJICeToYTjV6/+ZJ3W2xifgYKJfjcL131hC2BB0cUCRbkywESPVzBlrI 8VlR5cC+N7pMsU5+x22Aw5ne1YAMEzfVAV/3q/b7V7ZoG9tAVIz0AEgVSuh4hW3Zbj6L 8aT4Az4vTNPYUadKRN4vE4k+cTQ9+QjgE+sNFrGD+oYFu80MiqRx6LYVU3nA2t8rpdAu rt0Xtr9hynaTlZ4tY88Emujp4zPpcari/k/MzTq60ei+HHRB6JOsgOHkUmAALjYf3xWu 4VQzOKmPKCT2h1o9LllZnsSb98KxsZJ03JbNAV7PqwK8Ovk06fBR7TYZNq1DCfB0qZBz hFDg== 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=xr3X122JfUZTOJ9HNPiJpW+Iyor6r4hGY/b4sjNxJZA=; b=R/ae30ri5+TIpHqS25TZ62fZyUb5K3xCniwqdgq4cf7lEI78icxXM1VJx191CBCnT9 IvbesTlbf9wV7tTbgY4LuXoOPlYmpsyRjOTTrGFE5HCMkzzHKYJfdrJnND5QQuZv5dNr S+uK6MyDu1C33W/d/VYKfA7UGdXh+Myo6iQRLuMhBfg7qDEGBllOA1Q9fMIF2TiWjMB/ ZyqZISo4HvL7+3j2DJ8xewfb3M8M1rRT2oykiDEgDVsTgMly7eMQzlbDu6hged1s/yRa 4RCbyCvsQ0CS6PoEe/RRoP45gMj1gY5JmkAELTMVqPshK0DBsW6t9tnm2WZaeJiPJhiz 7+hQ== X-Gm-Message-State: APjAAAWMCfiVSi2fL1S36vhiWSmqGqQ/iVe0aPBpC5+/7sfsF1g6DHbd b4bBPOG29lnO0GTj9ibLN3LwFNujgJhF5uyGl+I= X-Received: by 2002:a65:47cd:: with SMTP id f13mr15511166pgs.356.1572646346250; Fri, 01 Nov 2019 15:12:26 -0700 (PDT) Date: Fri, 1 Nov 2019 15:11:45 -0700 In-Reply-To: <20191101221150.116536-1-samitolvanen@google.com> Message-Id: <20191101221150.116536-13-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> <20191101221150.116536-1-samitolvanen@google.com> X-Mailer: git-send-email 2.24.0.rc1.363.gb1bccd3e3d-goog Subject: [PATCH v4 12/17] arm64: reserve x18 from general allocation with SCS From: Sami Tolvanen To: Will Deacon , Catalin Marinas , Steven Rostedt , Masami Hiramatsu , Ard Biesheuvel Cc: Dave Martin , Kees Cook , Laura Abbott , Mark Rutland , 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 --- arch/arm64/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 2c0238ce0551..ef76101201b2 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -72,6 +72,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.24.0.rc1.363.gb1bccd3e3d-goog