From patchwork Mon Jul 2 11:04:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Rutland X-Patchwork-Id: 140734 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp3856391ljj; Mon, 2 Jul 2018 04:06:37 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLLSyB+dToG3lqlIyRl/UjZPNCmgwkWZ9vW8cBVmDYum03rngOgRzY3uPA0PerISX/5/4ot X-Received: by 2002:a65:6008:: with SMTP id m8-v6mr21589427pgu.134.1530529597322; Mon, 02 Jul 2018 04:06:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530529597; cv=none; d=google.com; s=arc-20160816; b=CACLgj/str65XdEdoY3FjDXWpVwEdl/6ne44r9xdzr8oOUw9ygopEoz77YRKiP09jN g6IrEnl1txzht67dv7ggNEB5ekMP6PSWZut+eRmwYcRgHtrihGTDyaDDCLwVDi1eoMP4 gpZKORyPFTVWtlhgpxJyWwmgt65SyTNnzTtEKKinu54gOyjgBcYWm3IpwXA9lzAK4nao H6soeq77qnV/o6+9xq4zPMNgVMsjuEczsR96qABEDC6SZIX8x3tDNnUFTDI0drDpKLyl m900NjMULopGY8JiZcE1MRmEqFvUzqw/DzWoVXd/Xc3LcvPWL0aBW9mU6yT5XHzDJlpI Snww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=ISMX0F+EbSwiQFliuirnYHux0bFPkYQXrw6z7Hiil/4=; b=FCJZoIN5lMtyYy1Iuaj54j+pqoOHYyoQo8EUElCk1zoQdjIjFvLugcDrjkx3rFdpZC QIw1gibi+R3HWMy/gWUGu1KeqC20BXB5Sm/uKXvUvAKaooVKIRxmhPBB5lcti08nxygt xYl9RZ7bOxlew6y9VcO8q+lPL8gQaGFAIpucmOf3afTpyiJQjbrjVimaidTnDZqVPvRY RpC6NVYdxKhv9wpT5pcMBevCRRueJamN6Dul+OZBu1dofY5LXi315omdHO/kfKxE+upI pFdnJZBkSll+dpCEqbumE6bjkKlFsUYdakEgfUcvFeEEme3RB9CcN7Td6EFism4CGFUU fcMg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p10-v6si12849379pgn.555.2018.07.02.04.06.36; Mon, 02 Jul 2018 04:06:37 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030460AbeGBLFI (ORCPT + 31 others); Mon, 2 Jul 2018 07:05:08 -0400 Received: from foss.arm.com ([217.140.101.70]:57584 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030373AbeGBLE4 (ORCPT ); Mon, 2 Jul 2018 07:04:56 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B58F61682; Mon, 2 Jul 2018 04:04:55 -0700 (PDT) Received: from lakrids.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id A512C3F5BA; Mon, 2 Jul 2018 04:04:53 -0700 (PDT) From: Mark Rutland To: linux-arm-kernel@lists.infradead.org, will.deacon@arm.com Cc: linux-kernel@vger.kernel.org, catalin.marinas@arm.com, dave.martin@arm.com, hch@infradead.org, james.morse@arm.com, linux@dominikbrodowski.net, linux-fsdevel@vger.kernel.org, marc.zyngier@arm.com, mark.rutland@arm.com, viro@zeniv.linux.org.uk Subject: [PATCHv4 12/19] arm64: zero GPRs upon entry from EL0 Date: Mon, 2 Jul 2018 12:04:08 +0100 Message-Id: <20180702110415.10465-13-mark.rutland@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180702110415.10465-1-mark.rutland@arm.com> References: <20180702110415.10465-1-mark.rutland@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We can zero GPRs x0 - x29 upon entry from EL0 to make it harder for userspace to control values consumed by speculative gadgets. We don't blat x30, since this is stashed much later, and we'll blat it before invoking C code. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Cc: Will Deacon --- arch/arm64/kernel/entry.S | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) -- 2.11.0 diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index 728bc7cc5bbb..6b7789d72064 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -53,6 +53,12 @@ #endif .endm + .macro clear_gp_regs + .irp n,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 + mov x\n, xzr + .endr + .endm + /* * Bad Abort numbers *----------------- @@ -169,6 +175,7 @@ skip_apply_ssbd\@: stp x28, x29, [sp, #16 * 14] .if \el == 0 + clear_gp_regs mrs x21, sp_el0 ldr_this_cpu tsk, __entry_task, x20 // Ensure MDSCR_EL1.SS is clear, ldr x19, [tsk, #TSK_TI_FLAGS] // since we can unmask debug @@ -176,7 +183,6 @@ skip_apply_ssbd\@: apply_ssbd 1, x22, x23 - mov x29, xzr // fp pointed to user-space .else add x21, sp, #S_FRAME_SIZE get_thread_info tsk