Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2840805pxj; Mon, 10 May 2021 11:57:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx707vVa+QadFE3/1LBxJVcVyWmy4E/cepzxj6m3x7fyzf2B6pZgKLMBvq02fAa6PORR0JY X-Received: by 2002:a17:907:3e9a:: with SMTP id hs26mr615071ejc.403.1620673049740; Mon, 10 May 2021 11:57:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620673049; cv=none; d=google.com; s=arc-20160816; b=VuZD0y3PQeNZQvR/G763h8/bsRRdnhNzCizzuTHscanyfmSeMUdGQBQkSSDwRFJsJS ScNPwlQfjvwkhMpmaEorHKyfJ00CTRF6pDGS8BbaJ4JPXr3JG3UtheYomuLw2ktVhGpq Ea/jRB1mr0Zqo4Od6YhTN4MKe8BTVRyqs1PYX4zmXQGcEABmabMPkHCPyR74UAGXq309 D9QpqK50GxqGLiWokAvWLhSc7x7TGMk8/75GwLOqMHh4QwVowJEwNQErd9UiYCp9B0Kn sfupeRQfBGQaVtum/vkpbyUUOYpkAvvX74PGm56eVchvsmAS7OpLDy+iJpk7UqjutRDy K0cA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=7zzEAq64ESXNZfItBhsP50MWC9r1d0W8O+dRebRph+s=; b=K68GJAJLBQHSf/+CfYdyd/gHrYky/qcb5wfhB/ECsvodEuf/0dhu+hBZNtH9PE7yJv 9uGt9w2kfj/nA7qkiklANOdJeiT/7dLj3GY9Zb09/P9G57OenzQttkfLkOl7OCs9VlZ+ wBWFDxIxGu41voC/8p35u0YDdC3U0O98O56OluPpqDiAUDdAXYJO0fjTaCS5qO/bxSYq CpSVHRlkKyfGxhliEe51oy+/DN3zwzUWbwGFiIWEopR6JRHwLQkUY/jJo0bHEv/E2Q1+ nHerCIztMDbg06bJLaRqMtzgP4z89dWbZtFZk9MQs+cGiVJqrBLGc/KiwobbMdORJF3l JFCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zytor.com header.s=2021042801 header.b=ZeoiRRl+; 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=NONE sp=NONE dis=NONE) header.from=zytor.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d1si14064754ejy.218.2021.05.10.11.57.06; Mon, 10 May 2021 11:57:29 -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=@zytor.com header.s=2021042801 header.b=ZeoiRRl+; 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=NONE sp=NONE dis=NONE) header.from=zytor.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233019AbhEJSys (ORCPT + 99 others); Mon, 10 May 2021 14:54:48 -0400 Received: from terminus.zytor.com ([198.137.202.136]:48999 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231817AbhEJSyp (ORCPT ); Mon, 10 May 2021 14:54:45 -0400 Received: from tazenda.hos.anvin.org ([IPv6:2601:646:8602:8be0:7285:c2ff:fefb:fd4]) (authenticated bits=0) by mail.zytor.com (8.16.1/8.15.2) with ESMTPSA id 14AIrNlh2459085 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 10 May 2021 11:53:32 -0700 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 14AIrNlh2459085 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2021042801; t=1620672813; bh=7zzEAq64ESXNZfItBhsP50MWC9r1d0W8O+dRebRph+s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZeoiRRl+6P7oiCCIaSrV6dZBlRCIdE1JGNKUn2AvIZtKIhPNtJDMIX0gV/hL0Hxyk bTLPpY0nzTl4sS2DCpsMoDVxRd1Km6S/7V1KfC56U2/xvgKylR60TQt0U2FUOiWGnW EAYUcLp+A1EJKC+DXM0kt1vdmVI9YONSjYWTX64RQ6RhyNK7Imh1Ks9tfIlAETZyZs btc2SUZ4tSbC3k5IzmKkPLHb62XZl1fziTMg9ouoHejfFsHJEWAFisbdOiWe2Hytsz YNxsaDHdQNhbk2yvtEulHAjei/v1V0EdEq4kz9DYqQMUEZkHDNf6ND+nd+rhT2TYvA bcgoEW9wh2LGg== From: "H. Peter Anvin" To: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Andy Lutomirski Cc: "H. Peter Anvin" , Linux Kernel Mailing List Subject: [RFC v2 PATCH 5/7] x86/entry: split PUSH_AND_CLEAR_REGS into two submacros Date: Mon, 10 May 2021 11:53:14 -0700 Message-Id: <20210510185316.3307264-6-hpa@zytor.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210510185316.3307264-1-hpa@zytor.com> References: <20210510185316.3307264-1-hpa@zytor.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "H. Peter Anvin (Intel)" PUSH_AND_CLEAR_REGS, as the name implies, performs two functions: pushing registers and clearing registers. They don't necessarily have to be performed in immediate sequence, although all current users do. Split it into two macros for the case where that isn't desired; the FRED enabling patchset will eventually make use of this. Signed-off-by: H. Peter Anvin (Intel) --- arch/x86/entry/calling.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h index 7436d4a74ecb..a4c061fb7c6e 100644 --- a/arch/x86/entry/calling.h +++ b/arch/x86/entry/calling.h @@ -63,7 +63,7 @@ For 32-bit we have the following conventions - kernel is built with * for assembly code: */ -.macro PUSH_AND_CLEAR_REGS rdx=%rdx rax=%rax save_ret=0 +.macro PUSH_REGS rdx=%rdx rax=%rax save_ret=0 .if \save_ret pushq %rsi /* pt_regs->si */ movq 8(%rsp), %rsi /* temporarily store the return address in %rsi */ @@ -90,7 +90,9 @@ For 32-bit we have the following conventions - kernel is built with .if \save_ret pushq %rsi /* return address on top of stack */ .endif +.endm +.macro CLEAR_REGS /* * Sanitize registers of values that a speculation attack might * otherwise want to exploit. The lower registers are likely clobbered @@ -112,6 +114,11 @@ For 32-bit we have the following conventions - kernel is built with .endm +.macro PUSH_AND_CLEAR_REGS rdx=%rdx rax=%rax save_ret=0 + PUSH_REGS rdx=\rdx, rax=\rax, save_ret=\save_ret + CLEAR_REGS +.endm + .macro POP_REGS pop_rdi=1 skip_r11rcx=0 popq %r15 popq %r14 -- 2.31.1