From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011067.outbound.protection.outlook.com [52.101.62.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B55A2330D24 for ; Fri, 24 Apr 2026 16:57:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.67 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777049852; cv=fail; b=ghga31QPV/yxKzxDs5QjUTFkzxzUjCk0y2cns/SQeW1gj/JN95QXfm09v21fQ8vW47lhcuhDyGjXW5M+uRG8efpsx4WdJOkjmhffqvPEsKtOsT47LaMOKB+Yzcrgg6t3OCp5/vT5lQE9JctHLMLa8gl0divQ8h0+wzwxpDkojyA= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777049852; c=relaxed/simple; bh=ppQzHYyFEc7QVsEuEEsoMqTT5NdkIncNhsXkzyMseOk=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=fqUIidF5Ec7m30R9LAQMls9yipuYy2Ib1hk0IKDdUNo5OL7/Ps7O7HZXECIMhXrqt2bTWxH9Zj7N0mX9Flyzm+pfCm4XjUIzUQ5LjzyJEhXQMO783KQRjAsfMJY3xIHWL8YfZAq+LOnhBIvcufNJDLgYaWb4YWmqGFn+J7lAfRw= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=TA1pQwqj; arc=fail smtp.client-ip=52.101.62.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="TA1pQwqj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Pw7zms3J7SIvHSGT9Imc4aIgfJSMTzwDw6JqZL9xD6eH7HSTvhgeiXrGVC/zme2b2CTKyPLlsvLYA5jPdoaBdJvwS3cGGOCSrE1LA1gfo1GyXQsgPBIpEKrH/unXLtoxgUmW3B2yuNlhE//1racPjeVvLH0S58Ix6HnBQnJIT1LvC3eU7/h2gEgA1fp6NcctcGI7Yu1cJA8BegrxOGpkeYbmHwkbROIoWWR+GR9U9Qj2x6JT6ueYB4z6j4PVLxqlDj/cWkZwHAJHKpph6i4kqsNOL5XfRj6q1/Z0f4Tx7GIWChX5wJGEashbZ5KAukyf/YNE35ygAqZzvQxBXZbxkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WoFxo6AunMIp1yUdZWWwUqyseeaXkRLAR4368CsBAbM=; b=e4ykOvgfENRb348wgtLrvg2FpkA33JaDxT5qmJbKv8XBMewWwyiwwY4WZWIxJ4vJUuSjFszB5Hrtb5eSWRLUuM0n/+S9QDwDPeq1NGN1Vj+6Fu/mds2BEATQfTaSfOWNB6HjejndXuuwvfkBL5n08wC6qYdzLBKMJnIvjRoW4rZdSL2skSs0vgNPSx8Hvmk14hbHvtIkYs+DetrCwjTrAdKWQwhmUlmBV+UMPW8/6uRrDSphJExjQCm1rOVfN/aglMfkTudPsZ+YUN1LU6W/NE7txcin1tFvax65WOr5qtLA65iJaIWDUkTY3Ye/KMCKtENEqScpM2IVDYg7f3/WKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WoFxo6AunMIp1yUdZWWwUqyseeaXkRLAR4368CsBAbM=; b=TA1pQwqj0cP7239Kfqg02i3sOq+kuEZ6wiQOcjGk/IoYSfduVfVKZVGmZ34d2huBb3J0NXScOf10aS643eyuKwJwLQXDTZUIWo0t2swv7/y6yxRES8FVtv7MgpLW7oYs/p2likN1/qR9UgP//3KebqutaCClveTV27uA31eNesQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from DM4PR12MB5070.namprd12.prod.outlook.com (2603:10b6:5:389::22) by SA1PR12MB7411.namprd12.prod.outlook.com (2603:10b6:806:2b1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.21; Fri, 24 Apr 2026 16:57:28 +0000 Received: from DM4PR12MB5070.namprd12.prod.outlook.com ([fe80::f3f2:852c:78d5:9353]) by DM4PR12MB5070.namprd12.prod.outlook.com ([fe80::f3f2:852c:78d5:9353%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 16:57:27 +0000 Message-ID: <3355fbac-b6b7-408d-839c-a4e386fee3f1@amd.com> Date: Fri, 24 Apr 2026 11:57:26 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] x86/entry: Zap the #VC entry user and kernel macros To: Borislav Petkov , Joerg Roedel , "Nikunj A. Dadhania" Cc: X86 ML , LKML , "Borislav Petkov (AMD)" References: <20260420164352.32129-1-bp@kernel.org> Content-Language: en-US From: Tom Lendacky Autocrypt: addr=thomas.lendacky@amd.com; keydata= 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 WiyqywZI5g== In-Reply-To: <20260420164352.32129-1-bp@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DM6PR01CA0014.prod.exchangelabs.com (2603:10b6:5:296::19) To DM4PR12MB5070.namprd12.prod.outlook.com (2603:10b6:5:389::22) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5070:EE_|SA1PR12MB7411:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f54821a-4ab0-4e46-606c-08dea22290eb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: 7cBu0gDNVMwDo4QugX2gKMBY2EocAGdCgDpIhInrwBu/qV6Irn5ty/YzLckrqFgWjKqp1m4tc8fdobdy+WuHoYCO+uX5eRNypiByHuoFGr+fVuRjS3C5O+hApdSaFUVod1B40h546y1L9J6ybjKQM4m5J9vY+HETHMWsU71ezvRwPjQUJq+vROt8bPgKmygk8J4765sYeCmrgzLmOqmgdZmFJ9Gl4FfXiT2RnlWGmkQaRSURRU0AodkZ7QK0oZElQlmYD64G9CFIC/BPitkI5b5klSk4xT2VVbGal47VjhpqXuAXeVh5Pk6fK9bvEoLaAOPVcblpDJk1ZOm0g62kIr8hVoF4jlYOPwR8rM0axPY7YVS+e2+nExQiit3pW3rJFX9aArcFbqWE/XSQ0uP00R7TtT++/FaVq4lLrTyUgbjF9o6ZIiKrZd8KOZgoXvdPZ56Zz9qb6upTUvWopkkPzI3peWHfUKKYRWZpizq3vcfylwNK22oUJ/KQsj9v46mklV+POQWFi5dchfztIAnaSI5X9EAX5K7qzak+wzMQkGRhbSGc8QKliOOuosUxi9XAkLr/vuhNQcvReUG+ydFARSrBJrr9D4dGfxVP/mQiciZnFtKSHcCM3k+SflrJ31fJc1w3OM+1xQBn/Fkkk+/j+W000rd1ODwdbZ0UsiC5icOitJZZD/cSrq9PdmwDE+qD2m0b+7im8JWfHxsHDIEIVANhB+bI3ZNXZmZpMtKenn8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5070.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q0Z4cXVyMjBXWnBLcEx2a3ZvV0I3Zm5sTXU0K2k3aTZXYXY4dmRQQ1llYkhV?= =?utf-8?B?MHVQTnRKbEI1VFdiRDliaFVLaEN3RWtHR2l2VkZuM1JHMkFMOCt2anA2TW9w?= =?utf-8?B?MnIyTDZudFM3RmV0Uy9OeXlMZFRsMWNBVUZIT1JGUFlzeks4UFZsWDRhSjUw?= =?utf-8?B?Sm9WUmFDMTAzc0VGc3BaUVdzTnN2S3pxeCtMdlErcUNXWm52T1VRZnQ5MFVo?= =?utf-8?B?MlFFeVBTVFZzMHpEeGY5SGpFZGxweUhpYk5uQUpPSzdpY3RQU25NMlpRaWZF?= =?utf-8?B?SG9rU012enhRUGtkcjNxRkt1UmQxOTJwNmxVeGw5L0VCNURVRWt5VmRaa1Bu?= =?utf-8?B?anlzRDhLbDNuYXZYUEIwbjgrdUVkUlBWN1hZVDNuWlVaL0hVcWM4K0FkbUNq?= =?utf-8?B?N3REYWFaRUNqYUJFYWcyaG5oTERXcC9vTTd1aXZGZE1rOWdHTmk5cXExVFda?= =?utf-8?B?cGp6V0VJRFhiTzY2cTFpaGxCMVRxaHh1dGxTakFWdXkxcEdTbUNVQzh1TEpz?= =?utf-8?B?eVVtZGRweVFaY0FNOU8xV3A3MmdxRy9yQ0lTSGVveDJUU1VpUUs2dUpBMTZY?= =?utf-8?B?Ym9KMjB2bU5BVnBpMXV6ZmRXNWdFVkNrMW9ZWCtFVXpjb29SYVBZcGFNVU9T?= =?utf-8?B?VDFCVFRyR1RpUjk2aVRTZkhYcDBaZXp6bWIrZkFOY1N2bWhNZjVjOVN6d3BX?= =?utf-8?B?L3QzTUVJYjhJWHk5SkhoekVERVAxL2o1ZkIxZjJseGxOajJmbWhZaTVGYnIv?= =?utf-8?B?S3pYVldKSkRZdUFlRkxwV0NDV0JqbWhmS2tJWEIxRjRxSlZJV3BWNm5za2tm?= =?utf-8?B?dWxKYWh6YlcwOEgxcDUzbjd1MTZEaVZvY0p6bWNJb0VjckFlenU2QWJxbWY2?= =?utf-8?B?OExsQy9EMmtUTlkxSTdsKzlRZGdhbHZZMjJZUGQ2dW9jOENqbFJiRnpJQTNI?= =?utf-8?B?OTdHQWhmKzNoVXJEWXI5djlMR21hWnhoMUZudmdNN25ib281dTJjUkNLWEtK?= =?utf-8?B?SUI1OGRUOFhlczJKemtHb29TbTQxUlZPVmFxNnc5ZVFvdVIxZFZLWk9wa0pG?= =?utf-8?B?LzZyemtyNkxIdGFwNlRnV2lkVlZZeXYyRDBpWHdpS2tlYUhWSzJQUkZDdlZu?= =?utf-8?B?T24wS2JFeHVneFpGS2pzZzBjOHVPdENjY0RGOWtwMnplMU1BUWV5Q1hjNVli?= =?utf-8?B?UUdXOE8xUTNQZEJXWnp0ZGtOQkJWOTdWcjdlM2tncUVtTHZwZGdaZkxSTWNC?= =?utf-8?B?STFycHVuNnVWQ0tjb1Q5MDVuLzM3VzAvT2pqRGFXdWRxL1U1WEpnMHRWL0xF?= =?utf-8?B?S0VCNm5vRTcydnlIMWxCZXVuZTM0S3ZWQk1oN08yS1pvelZId0pxL2JBbTVv?= =?utf-8?B?R2NGdlRPRDVRa050VHBJK0xXL1pGdlJiQXBhQTloakZxQ0JqeVhuc3hwcHVN?= =?utf-8?B?WS9FeFZNTEoxelJ2VFJMRzEzUUhrclQxaW5weC8yaXhFNjZLbWdzV3RjeFNn?= =?utf-8?B?MFNPQ21ncS9YMHExRzJKU1BGcEM4WXZjdVhDcXc2UkJrVmo2RTZpTzdRY0g1?= =?utf-8?B?K2prMGgyK2V3bXlPSElIT1RBYTU1NFM4N0VwakJ1V3F0WUNkM2ZqQ2RBYSts?= =?utf-8?B?KzJvL3BBWkdteExZYUVHSEJGNFZLYW1lU29hTWtwRndGUGZaVEdJcE1aYm0w?= =?utf-8?B?ZGxDUUY5cWV1d21vem5FMVR3a1VDU2J4TytUcUVBSWtTbGd1T09BSmZWUGhp?= =?utf-8?B?ckplNXVhSG8wN3V4bzFsOG8raVl6Y1NXcU5TS0QrVzU0N1I3UHpIT08yazg1?= =?utf-8?B?Z0k5MW5scDNXaDNTNHVyblJhUjJrcTNsbXhKZklKek11VG1oU3BOWDd4UzBD?= =?utf-8?B?ZGJBV3kyZmRINkROamU0eFpVOXY3ejZhaWZ2T2dCZG9ReTdlVXNWWWtmYVR0?= =?utf-8?B?K1QyUWpCMys1KzRJekJiekQ3V3VOUlJuQWc0K0FDVTNLYlVXWFV0dDVRK2VD?= =?utf-8?B?cVlNSVJMb3VWK3JnY3dtVTNkVjVSQVhKT20yK3R1cjRFOUVNZTVUNCtnVzZ2?= =?utf-8?B?RU1nMkIxUTN0UnByK0lCSWIzVEQwakVjQzhHdFE2M1ZURzJDVjlYRDU0cVRO?= =?utf-8?B?cGZ6M24rdmVhR2NKYkc5TlJTK04reHZKTGh0SFFtcy9hVDJReGRLN3RTcUFE?= =?utf-8?B?NEF4VWY4b3pKbTRXZzlUa3ZFaFNVNkZFSjRaYStLQ3doWTlueWovRUdCUWpC?= =?utf-8?B?RUN4ekFFaEZlQUg3MFhvWWV3NkN4dUtYaFdwdDhpR09NenlrZVNQcXVQdVI4?= =?utf-8?Q?FgqZYfnR5MGjWCZRiy?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f54821a-4ab0-4e46-606c-08dea22290eb X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5070.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 16:57:27.8936 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BV/doMBhHpe8NCbE80jzNgGEu23RVp8D92028U0AY0W01pFRFDYYOec95N5g+jsQQTi2/hS9iWGTmJXZ8AvHKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7411 On 4/20/26 11:43, Borislav Petkov wrote: > From: "Borislav Petkov (AMD)" > > Drop the separate kernel and user macros in favor of calling a single #VC > C handler which multiplexes between the kernel and user #VC entry points > by looking at CS's RPL. > > Zap unused DEFINE_IDTENTRY_VC while at it. > > There should be no functionality change resulting from this - just code > simplification. > > Signed-off-by: Borislav Petkov (AMD) Looks reasonable to me. Reviewed-by: Tom Lendacky > --- > arch/x86/coco/sev/internal.h | 3 +++ > arch/x86/coco/sev/vc-handle.c | 12 ++++++++++-- > arch/x86/entry/entry_64.S | 4 ++-- > arch/x86/entry/entry_fred.c | 10 ---------- > arch/x86/include/asm/idtentry.h | 29 +++-------------------------- > 5 files changed, 18 insertions(+), 40 deletions(-) > > diff --git a/arch/x86/coco/sev/internal.h b/arch/x86/coco/sev/internal.h > index b1d0c66a651a..b9632c0fc391 100644 > --- a/arch/x86/coco/sev/internal.h > +++ b/arch/x86/coco/sev/internal.h > @@ -70,6 +70,9 @@ void svsm_pval_pages(struct snp_psc_desc *desc); > int svsm_perform_call_protocol(struct svsm_call *call); > bool snp_svsm_vtpm_probe(void); > > +noinstr void kernel_exc_vmm_communication(struct pt_regs *regs, unsigned long error_code); > +noinstr void user_exc_vmm_communication(struct pt_regs *regs, unsigned long error_code); > + > static inline u64 sev_es_rd_ghcb_msr(void) > { > return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB); > diff --git a/arch/x86/coco/sev/vc-handle.c b/arch/x86/coco/sev/vc-handle.c > index d98b5c08ef00..96b62b49b2b5 100644 > --- a/arch/x86/coco/sev/vc-handle.c > +++ b/arch/x86/coco/sev/vc-handle.c > @@ -954,7 +954,7 @@ static __always_inline bool vc_is_db(unsigned long error_code) > * Runtime #VC exception handler when raised from kernel mode. Runs in NMI mode > * and will panic when an error happens. > */ > -DEFINE_IDTENTRY_VC_KERNEL(exc_vmm_communication) > +noinstr void kernel_exc_vmm_communication(struct pt_regs *regs, unsigned long error_code) > { > irqentry_state_t irq_state; > > @@ -1006,7 +1006,7 @@ DEFINE_IDTENTRY_VC_KERNEL(exc_vmm_communication) > * Runtime #VC exception handler when raised from user mode. Runs in IRQ mode > * and will kill the current task with SIGBUS when an error happens. > */ > -DEFINE_IDTENTRY_VC_USER(exc_vmm_communication) > +noinstr void user_exc_vmm_communication(struct pt_regs *regs, unsigned long error_code) > { > /* > * Handle #DB before calling into !noinstr code to avoid recursive #DB. > @@ -1032,6 +1032,14 @@ DEFINE_IDTENTRY_VC_USER(exc_vmm_communication) > irqentry_exit_to_user_mode(regs); > } > > +DEFINE_IDTENTRY_RAW_ERRORCODE(exc_vmm_communication) > +{ > + if (user_mode(regs)) > + return user_exc_vmm_communication(regs, error_code); > + else > + return kernel_exc_vmm_communication(regs, error_code); > +} > + > bool __init handle_vc_boot_ghcb(struct pt_regs *regs) > { > unsigned long exit_code = regs->orig_ax; > diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S > index 42447b1e1dff..c6d996593f32 100644 > --- a/arch/x86/entry/entry_64.S > +++ b/arch/x86/entry/entry_64.S > @@ -492,7 +492,7 @@ SYM_CODE_START(\asmsym) > > movq %rsp, %rdi /* pt_regs pointer */ > > - call kernel_\cfunc > + call \cfunc > > /* > * No need to switch back to the IST stack. The current stack is either > @@ -503,7 +503,7 @@ SYM_CODE_START(\asmsym) > > /* Switch to the regular task stack */ > .Lfrom_usermode_switch_stack_\@: > - idtentry_body user_\cfunc, has_error_code=1 > + idtentry_body \cfunc, has_error_code=1 > > _ASM_NOKPROBE(\asmsym) > SYM_CODE_END(\asmsym) > diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c > index fbe2d10dd737..fb3594ddf731 100644 > --- a/arch/x86/entry/entry_fred.c > +++ b/arch/x86/entry/entry_fred.c > @@ -177,16 +177,6 @@ static noinstr void fred_extint(struct pt_regs *regs) > } > } > > -#ifdef CONFIG_AMD_MEM_ENCRYPT > -noinstr void exc_vmm_communication(struct pt_regs *regs, unsigned long error_code) > -{ > - if (user_mode(regs)) > - return user_exc_vmm_communication(regs, error_code); > - else > - return kernel_exc_vmm_communication(regs, error_code); > -} > -#endif > - > static noinstr void fred_hwexc(struct pt_regs *regs, unsigned long error_code) > { > /* Optimize for #PF. That's the only exception which matters performance wise */ > diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h > index 42bf6a58ec36..20f548702404 100644 > --- a/arch/x86/include/asm/idtentry.h > +++ b/arch/x86/include/asm/idtentry.h > @@ -340,17 +340,14 @@ static __always_inline void __##func(struct pt_regs *regs) > __visible void noist_##func(struct pt_regs *regs) > > /** > - * DECLARE_IDTENTRY_VC - Declare functions for the VC entry point > + * DECLARE_IDTENTRY_VC - Declare a function for the VC entry point > * @vector: Vector number (ignored for C) > * @func: Function name of the entry point > * > - * Maps to DECLARE_IDTENTRY_RAW_ERRORCODE, but declares also the > - * safe_stack C handler. > + * Maps to DECLARE_IDTENTRY_RAW_ERRORCODE. > */ > #define DECLARE_IDTENTRY_VC(vector, func) \ > - DECLARE_IDTENTRY_RAW_ERRORCODE(vector, func); \ > - __visible noinstr void kernel_##func(struct pt_regs *regs, unsigned long error_code); \ > - __visible noinstr void user_##func(struct pt_regs *regs, unsigned long error_code) > + DECLARE_IDTENTRY_RAW_ERRORCODE(vector, func); > > /** > * DEFINE_IDTENTRY_IST - Emit code for IST entry points > @@ -391,26 +388,6 @@ static __always_inline void __##func(struct pt_regs *regs) > #define DEFINE_IDTENTRY_DF(func) \ > DEFINE_IDTENTRY_RAW_ERRORCODE(func) > > -/** > - * DEFINE_IDTENTRY_VC_KERNEL - Emit code for VMM communication handler > - * when raised from kernel mode > - * @func: Function name of the entry point > - * > - * Maps to DEFINE_IDTENTRY_RAW_ERRORCODE > - */ > -#define DEFINE_IDTENTRY_VC_KERNEL(func) \ > - DEFINE_IDTENTRY_RAW_ERRORCODE(kernel_##func) > - > -/** > - * DEFINE_IDTENTRY_VC_USER - Emit code for VMM communication handler > - * when raised from user mode > - * @func: Function name of the entry point > - * > - * Maps to DEFINE_IDTENTRY_RAW_ERRORCODE > - */ > -#define DEFINE_IDTENTRY_VC_USER(func) \ > - DEFINE_IDTENTRY_RAW_ERRORCODE(user_##func) > - > #else /* CONFIG_X86_64 */ > > /**