Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1685968ybz; Thu, 16 Apr 2020 13:40:56 -0700 (PDT) X-Google-Smtp-Source: APiQypIP9JcNtqUm2jIgegybSCZlhzoP8qzM7SooxY/pjKFnWRWSRcWjgy3b0PvieJDzP8AxDPCb X-Received: by 2002:a50:e007:: with SMTP id e7mr17006edl.361.1587069655918; Thu, 16 Apr 2020 13:40:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587069655; cv=none; d=google.com; s=arc-20160816; b=oS+kh2cIneaGkjZ66enaUx/PdscT6CU75IWZpFFLHhSccjT/1s6AUYhDoEPZuR0VmN GQRvMEXP/TYHjGRHAnlBVWfI/3mZ1nElnkAmmfvsc3lKGh12RUn0VbzvV1U1gQE6EkOQ y55DCNPOEkPh0wgIQ2vz2dNqZeoWukFtUIlqA9C/4kYgzQigsI6DH6geZkyTbRO+9VZg qH4u+w7hTBD+rbQ56ziQhJQz7foVh8XAzp7FOHe/kS6j45PnTc0mNeIIpOGellWxZK8q E2YsXBA6IOLVHXHfPsE65JKsgQw0XC+lqpEbpkkT8YiR49/3EzQG/0o0O0jK+AE4XoXl SJHw== 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=eLDcnnx64m8ZS+dEJe3nOZfc66cPnNapYFMsDYlM3DIjcLKCnw3KYjQ7JphBSU2bWq wiKxgziaUdFL9aL988/VrlTR3o76J+NSeVexCrU5l69cff3xM8Rblq/IndmWCJkPkwCM mihhzXi/3BEBItipMszUa9x+VJC1F0/pfLt8VS4c7wfUIchbqAvHVBshimi0StuxQWM8 90ZFu/y3IGkNfFX1XcA84e6AFwgfbHtZ3bEIBU5V40laUg+JPkpHFWJUqsARbr+qab0h hGMw8+JqoeHXiwPAlbQoOOn25Ef4GI66Oz4yiX3sUvwJzhzkp5T/7YmLWhViS+WNU5Yb gopw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=aGvQz7rp; 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 k9si13912730edj.96.2020.04.16.13.40.32; Thu, 16 Apr 2020 13:40:55 -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=aGvQz7rp; 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 S2410702AbgDPQOK (ORCPT + 99 others); Thu, 16 Apr 2020 12:14:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S2506859AbgDPQND (ORCPT ); Thu, 16 Apr 2020 12:13:03 -0400 Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91FF7C061A10 for ; Thu, 16 Apr 2020 09:13:02 -0700 (PDT) Received: by mail-pl1-x649.google.com with SMTP id l1so3158777pld.14 for ; Thu, 16 Apr 2020 09:13:02 -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=aGvQz7rpj1gmlNot9DGOyVfFExMSMhcz9FOTIfJbSo6J2eaS4Q9EvaTX97Nd1b7Is2 Bi/uzVXKD8nyy0gdnni7g4rNQaOUONSHCDbXi1JxVmjuSDUSR9C3hyS6ONRIgdqe5A7o KRFqaiwPkP7F+S6duXdhRB2xtAeRc18dKkptU+TW+VkoS72brWS3gLP1uLJyWKMa1apq 6GOIGu4r7BbAhSSQiEldxlhfcpZpwS7Ujq6MBf2bUhjBlcqdRF1nhMsPi7t9S8NV1SxC 8eUuHSdrmpT1WtCHfSF0mYe/M0/QauT7xIFnKzHxZWJuc08m/q50qVVerwI3cu0X+K2t 149A== 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=G4cX/L/cevo3lyH20+6ca5pjUAlePX7BF+Fm25uURQv27W2g5d9yHIZTcYfHAaTLeH 2rJ7rxb8HBq880I2Envb2Yf2yfT0ti+JvExDVh7cpm2vmZh9A/pzkdsA/3hClbsmqeD2 sqhHcUPDoIMb9FxbEunbWxt8XsBBB70ru0hnCLGnHHrS/MEbP6KLrJ2XkinKZ+NbrmBP vIYoTIS2/KKIBtemaVIghNh+jDsRaavW8E7zXDb4mXRxZjeJjE3XwWOE/nPYTzjps1xc cxf9ScAieVPPHqaGVdDSbwb51g8EwwuiZqxsqGXTy9T83WylgB0t0E4R0C5b+8MhjGSz CQtw== X-Gm-Message-State: AGi0Pua7hald+gopWTZFCS9HTnrL95BCwSEmZqV9BVu6l8LrKXM5X35u Ep7K1/kG4fwywHUS5isdQDWK93PG9ZsL0Q0vBqI= X-Received: by 2002:a65:68c7:: with SMTP id k7mr33098346pgt.248.1587053582058; Thu, 16 Apr 2020 09:13:02 -0700 (PDT) Date: Thu, 16 Apr 2020 09:12:38 -0700 In-Reply-To: <20200416161245.148813-1-samitolvanen@google.com> Message-Id: <20200416161245.148813-6-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> <20200416161245.148813-1-samitolvanen@google.com> X-Mailer: git-send-email 2.26.1.301.g55bc3eb7cb9-goog Subject: [PATCH v11 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