Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4247037ybz; Mon, 20 Apr 2020 19:16:49 -0700 (PDT) X-Google-Smtp-Source: APiQypJq+AI2W67GtMS9xOiKJViZh80SSCksq9L1eRKggwL/RoiLYs++G83gIYzP3exdp3AlJ/DZ X-Received: by 2002:a50:f298:: with SMTP id f24mr17654007edm.199.1587435409649; Mon, 20 Apr 2020 19:16:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587435409; cv=none; d=google.com; s=arc-20160816; b=xCb9AyVSmaONTIOsnZW15lOhw5gDa8LMj2Bxck4kOnXr2n9UDQNC0LAziFRKAunuEu 3V71RgBIo383ETIa932DR3PvQEMmtbbWM8I4ivAVB3TrAcNisBFqjRB671oag3dy6Lxk XkVkTwgDobEb6l0S6mAaOSZTZWeldDpVoKQyDX9xOHSRn+4UVe1Vb3a9VI7zZ7pHhpc7 6l7Y5Jn074s5i/iZHRqmxtWXZ/uN5t0NR68709UypVNZQmWRxcbIOfHmoxTyH+oiYaid OY+FR4YpuuG1qz3/howSP0KDnFnq+ygg5owFrx5XdfD+YAAeUBFvKcgq/msEzVo2jZoz J2TA== 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=jhbZSy8N7pmIKGLCoqfuWjSb1n91/ddT1S0YkqMO/sE=; b=SRBe5PYROBoVqUcnYK3yMm/KxoYlHFhyIj5AXF2Lj4uH0Np1dQ6jhzcJY8OEtmBk0b eLIpa6rSwPNYlZBu0QY7URNbrvYcuqgi1sLmQp8vTkgnOvv3CN6KMxfqXTXw4SW0opIG 5PGzYThltBU/PMj/JXXe6SMefKM0guNGg4rnLvmqt7qfprfLyQJTi18hCGkX1dGvu1L4 /ndbCzV8rg8a/TUi83NW0kDi/rqnibcIcFIYfws8H+CrVjov0RtFL08TpfBbuNhzrxAb 4W8fhuDrJSqs2dm6XpXoJI+vdrCD8+p7GQfWd38Uzozc+N2ujwESoF/fp82OFKreiJvV 49Lw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=kAQ83Kje; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id m11si682229edq.373.2020.04.20.19.16.23; Mon, 20 Apr 2020 19:16:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=kAQ83Kje; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S1726961AbgDUCPO (ORCPT + 99 others); Mon, 20 Apr 2020 22:15:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48252 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726893AbgDUCPL (ORCPT ); Mon, 20 Apr 2020 22:15:11 -0400 Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com [IPv6:2607:f8b0:4864:20::549]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 07921C061A0E for ; Mon, 20 Apr 2020 19:15:10 -0700 (PDT) Received: by mail-pg1-x549.google.com with SMTP id t18so5392868pgi.1 for ; Mon, 20 Apr 2020 19:15:10 -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=jhbZSy8N7pmIKGLCoqfuWjSb1n91/ddT1S0YkqMO/sE=; b=kAQ83KjeKeymPxC8tFl9LqSOU09wryYOH3Ut5Fp4QtEqnkFBqwDOtM03kprDG/MYPB 33Qtrj9LQFkGfgRCPCzwJjXpwrT0xmeHSdgRANOUBywF6AxQjg0dKXVmnr0qSWtz50Oa bl6qbQyPLNSvkLhEhv06EXy0JtnPBS5QDsma3dbrpedM0dagK+Aiza6GlknaLT2doark A4f3m3SHS8DuK6cZNIyUA6UW9ibFykjSJfV8R5iVG2Qz33IqVpOrx5YHGsY9lc6LoHU+ hVBFXM0Zwuqzbb8qvTwTgmmU/ReSXVtmuKGFUe3ewBrMDv3cClvqp6ELYlJQekoGEWrC 3irw== 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=jhbZSy8N7pmIKGLCoqfuWjSb1n91/ddT1S0YkqMO/sE=; b=EGunVGj+Y6FPxyxwQJbtS6JjC+zZgQAq6A4dvD1Tch9BwF8C09RDG8uqajfpXd3eLp vZd95oDHaBV3UnBynaQQ08Fa3lopOzKe9FG8Y1p6G0XOb9ylE++3d3p6l1HHkl13bBSj nIubXI6EbDt2rzM3hA95t1gkqNfx+zX0qDHwR0UMcHPS7oF+IRV5HMiKwiFZAwVwpR+w P0WryI9gO+E/46SGFliLZZCzwI7o3RwIeIdVpmE6E3zYQ8nKFG0nKh68xsG1mZhXU9/m Kf6cUJcb0CIfMWiQK0cN73kdXb6OHgE3KPinye5uMA0Jjl6pCGoX/zGJHvm1dTIi28au sWJg== X-Gm-Message-State: AGi0Pub6hBSLXoqr0FakNCqTfJKy+VHGOtLRbNAt6666QSiAEvYUhmhz 6vXB6pN/NYXcG8MMrlnTsmxw5ueTcqxpkykd3Fg= X-Received: by 2002:a63:751:: with SMTP id 78mr5125628pgh.259.1587435309529; Mon, 20 Apr 2020 19:15:09 -0700 (PDT) Date: Mon, 20 Apr 2020 19:14:46 -0700 In-Reply-To: <20200421021453.198187-1-samitolvanen@google.com> Message-Id: <20200421021453.198187-6-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> <20200421021453.198187-1-samitolvanen@google.com> X-Mailer: git-send-email 2.26.1.301.g55bc3eb7cb9-goog Subject: [PATCH v12 05/12] arm64: reserve x18 from general allocation with SCS From: Sami Tolvanen To: Will Deacon , Catalin Marinas , James Morse , Steven Rostedt , Ard Biesheuvel , Mark Rutland , Masahiro Yamada , Michal Marek , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot Cc: Dave Martin , Kees Cook , Laura Abbott , Marc Zyngier , Masami Hiramatsu , Nick Desaulniers , Jann Horn , Miguel Ojeda , 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 85e4149cc5d5..409a6c1be8cc 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -81,6 +81,10 @@ endif KBUILD_CFLAGS += $(branch-prot-flags-y) +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.1.301.g55bc3eb7cb9-goog