Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3046334ybz; Mon, 27 Apr 2020 09:03:19 -0700 (PDT) X-Google-Smtp-Source: APiQypI40QJY0RqaDEcGF3BGm+OqGibD80ioTy8FStpMIam0GPoKRtkaPYNSOhmwDfsHBb/KO2FE X-Received: by 2002:aa7:d6c7:: with SMTP id x7mr6319686edr.313.1588003399063; Mon, 27 Apr 2020 09:03:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588003399; cv=none; d=google.com; s=arc-20160816; b=Lb0XJQTmsqPWaa9yTu5GZOLq8O4p+CEgt0dsod5eEFRjOLbdjgCISSEEPZLBJ6bXkf hXzfFXuVVt2wVsM5MW+uWv2h9tBeaxIBRkHmrKAvvingIQ9NGSyLLtjpY2hALaf5eoqA 5nObAueYGHNDKDiWL7P4ntdkp8MMmFCCb+NFH0SFYYkvw3duBkXJ52f9DCPaAvZdf+Yx 2oU0RYeG5RBpKgg3PE3ofvaw++fbD/Bl0S2eJ1p7St4Z3Gi8jY4ikaKhiIdT2oYLVG3L mwXXcOwbKfe5XIOokdP1czNqWZ0gdJB5ni1edPffVjs5DAl/pWIxrJposOvzPGQUGoDL mLyg== 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=vWKjMu4YpZkMxmoaABUBOKf1igZnxFZ9c3Ig1J3O4Og=; b=rx4tPJdZWRvFg8Q5UKUJw+2hZFgX0h2qN4KkYHCBTkpMBz+jZe406y7vda0BhfiQkj wkFR6MCBKsKRq00rcM3whx5a/+k+8ZjhCRysSrXuHPAc40NtNH7r6SZpUAAEdi6HUucA HBU0dM4aFF7SliyiKIIJ6siDYNVE9WWCBTNpbCm+OJsvuSWBB+uZTV4nEuDb2SiOHlrU idhkm5N6XRJl1lsdnbin7FyvyBPWzKxvx6m+UuNusWhdRU3AnSR4ueyM9p35Czd0Uh+A 5QjDqMXvszVRFS9hPzEwkuddHz0Gk/Aw/DodE2t7zl6SVUNABRE8wSWs+G8PIlKeNDZk 2sYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=kiSv8CiU; 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 v2si2885edd.536.2020.04.27.09.02.54; Mon, 27 Apr 2020 09:03:19 -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=kiSv8CiU; 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 S1728566AbgD0QAo (ORCPT + 99 others); Mon, 27 Apr 2020 12:00:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728517AbgD0QAm (ORCPT ); Mon, 27 Apr 2020 12:00:42 -0400 Received: from mail-qt1-x849.google.com (mail-qt1-x849.google.com [IPv6:2607:f8b0:4864:20::849]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 960B4C0610D5 for ; Mon, 27 Apr 2020 09:00:42 -0700 (PDT) Received: by mail-qt1-x849.google.com with SMTP id g55so20998081qtk.14 for ; Mon, 27 Apr 2020 09:00:42 -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=vWKjMu4YpZkMxmoaABUBOKf1igZnxFZ9c3Ig1J3O4Og=; b=kiSv8CiUDdv0MhnhG7OLvK4HRjHRHD2p5Xk8z4MNjfWWTLx6u3zwpYo+VXYo00s9lQ 2SiB14ebJv+tpR/lJ6lBiS6NtwBJkpElgf6+/UxLuf4ODhwnkipaZqAOpGAlWYJpWfCS z/5ymvrE+OkDEIiguUTShhBQhJ6y715cKJGNQcwyaJsde7L0h/IXtozn5mtgfyeHg/Ym H43sTz24QuaAjK8JJGNtzpBldyBrDbq8uPivT4CI9K7/qC+hhiObIxt3J7MJfK5BmrKL +bLkpaJXkzjZcdx/s4M6wTt3HBXcwxs7ZUVUd46Y+nf5P0oIYdPegXdb9NdLI9tk1xzd GS1Q== 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=vWKjMu4YpZkMxmoaABUBOKf1igZnxFZ9c3Ig1J3O4Og=; b=Pi/T2rKc82HAxJg8rAcGSw6/67KDaFiMatumcsqbBeLJK7N0bbqRraGA93NpVXF9/o hYtyC3NB6bFGA8lnkE6b5bzrvcoFTDP2F1TwAu5+Y3LkSy115Vi7qv3Vwb+th6vt1oTp xiQu8iMtGKw58TC0AmqPKfsUuHh2nRn9A/5XjTOX5ccsQWH5je3lngpCDaJy5A6sGStw rYIxBscyWMdbmt5JL6F447o73qse6gouICJ+n5y+aJj9+wXR9G03V4GGA4/97RVc4qnM 23Yvm1NHQXYCFWbMsPwhpeEKUc9UfOCgpre85tC19jqAwKBmt6eshkE/fChb7KpzDD+y fexA== X-Gm-Message-State: AGi0Pua4eGSaiv1YEzmcbLQKWvCgDJigKQRbQDhc1Y9hTxxDoToSf+2/ A7WF0Ik8BCLolW/bLqe0s3lppxZtmT1IoKOtlm0= X-Received: by 2002:a05:6214:150e:: with SMTP id e14mr23211009qvy.65.1588003241754; Mon, 27 Apr 2020 09:00:41 -0700 (PDT) Date: Mon, 27 Apr 2020 09:00:11 -0700 In-Reply-To: <20200427160018.243569-1-samitolvanen@google.com> Message-Id: <20200427160018.243569-6-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> <20200427160018.243569-1-samitolvanen@google.com> X-Mailer: git-send-email 2.26.2.303.gf8c07b1a785-goog Subject: [PATCH v13 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.2.303.gf8c07b1a785-goog