From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011038.outbound.protection.outlook.com [52.101.62.38]) (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 A04772EA732 for ; Tue, 25 Aug 2026 02:06:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.38 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787623621; cv=fail; b=JDMCDEyXa+3bU2M6JROzy1Te34IJ6RZ5nh08jhwiVfyC7riaHgBu13Ik+utdkkzNh8HWYilZq98tVgkWBgeNGfwfab4f6dDm97A0Wv/1aYm+HmFRvuwrJXdbHa339YUXeMJ0jyawxYnjv9YDVMIX8kmLI1woVEngHZVAbHp60YM= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787623621; c=relaxed/simple; bh=D6soaIfhIRazXDZpkPWkHDaZMK3NistUt5uvx4QHFbs=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=madUOjDz0OGMu4NajXMHI/ra9Hg+5VRvIVqZR3nAF40/5qOytEK/6juHPY4Xq4k7I+MOthzVYAWl9s8144+WR/YkAGygww796zRxJpG59puaUdRSgyfS08yHfJGTf9Vz4akhx1YRu5WV6Bv5sqF6LMfAXTNJwqiJGDelQNTnMH4= 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=mNh/4I2E; arc=fail smtp.client-ip=52.101.62.38 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="mNh/4I2E" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=b0LV0TYNxnpdU4XTWjDazSaYrgRtZpjZmetm18MVxluRBUULBeCVuplCBFF3Lf8I3ekYNfKevwuu+mUO0hfbcfN/VKWhcNZyGP+APVtp41HK50MLG9nK9uwz2WRV+c+bfO9lVX+w9ybWAjj9UfIdN/KIdGd7gaqj9HPDXjQfyuAxtoKhfPGWGIl1pIMeAFx2ppCDth3rldA0/m8/pGVcvB88r/sNgvBVn6GHYD7BgkvVaQZT6B++M8iC1qiO6VcYnB+fere5Z+O43n8/hw7CVn9okGC28swdURs5DjB0Ew0pF+2y021NJoCOUK6Kb6F+s2Y8ar3lYWb+Qrk82oXRXQ== 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=5cmU5X4uH66etSEzz4GMsC1Kxk328AuqHkFjxwfutuU=; b=QNqdPxt5zpRDmOKOsam4+IFs8QdaOAAr+cXi9Skwo4t7Psx1UUbIkEP/N1h2esLaQU2D0AjAMs00cQmJtaVf/i784RGWOQAHtVfEUaQ2xx0MQXY2DatDaHVc1JK+zzUAZ9rlGsHBgg1s2g5kKtmWsgoba1blTahsRYnQalHJkHFvgrCFp8evslkE73wkTsBfddaLTvpbFi/jgcnnA5LTQYiZGwa+2KTtV8NLVxZ5kGwchWZKttoYXmdb93gqsg4LFjNy6qnwPeqJilSZ1ZwwKoWzfDbe2kYmjzU5IUcnNb+KFF9DqzzEblS9EFASs09mQEz04GorR/OkNT09DRqqbA== 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=5cmU5X4uH66etSEzz4GMsC1Kxk328AuqHkFjxwfutuU=; b=mNh/4I2ErbBkg5vbYUA+9Zw1r56Z1V1LG/tWgalt4YE33Y7txp0idttbXviU3szzjL14jRUOKYWbNaKH+pPFu2CLQM3FKlAXjb83ToPv9H8kHWQ5MgAeqGqJLslvJd7q7dm5gyGyjzPdzVVbXISbPOsbWsude342XQP2DCghE7Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH1PR12MB9575.namprd12.prod.outlook.com (2603:10b6:610:2ad::12) by CY8PR12MB7218.namprd12.prod.outlook.com (2603:10b6:930:5a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.6; Tue, 25 Aug 2026 02:06:55 +0000 Received: from CH1PR12MB9575.namprd12.prod.outlook.com ([fe80::2aab:a788:44ed:f4da]) by CH1PR12MB9575.namprd12.prod.outlook.com ([fe80::2aab:a788:44ed:f4da%5]) with mapi id 15.21.0339.012; Tue, 25 Aug 2026 02:06:55 +0000 Message-ID: <8ada168a-2bff-4e9a-b0b3-6776b060f739@amd.com> Date: Mon, 24 Aug 2026 19:06:53 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/7] x86/apic: Add an SVSM APIC driver To: Tom Lendacky Cc: LKML , x86@kernel.org References: <7c4f962cb0c993f0cb136a9abcbd4f3e4759282c.1785375271.git.huibo.wang@amd.com> <0514ffca-89a3-42e9-bc30-50c317aa7bd9@amd.com> <1bd358fe-39f8-4a95-bf87-24a4a34d5b64@amd.com> <3829c69d-53f8-438d-a8cb-c49d6958c73f@amd.com> Content-Language: en-US From: Melody Wang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR13CA0085.namprd13.prod.outlook.com (2603:10b6:a03:2c4::30) To CH1PR12MB9575.namprd12.prod.outlook.com (2603:10b6:610:2ad::12) 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: CH1PR12MB9575:EE_|CY8PR12MB7218:EE_ X-MS-Office365-Filtering-Correlation-Id: 30db5758-88b2-4628-1637-08df024d8972 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|22082099003|18002099003|11063799006|56012099006|3023799007|4143699003|10067099003; X-Microsoft-Antispam-Message-Info: wFoVcPMXDgWqWToRMrC56PsK+blfGUmnRwfCuRfyMDOCHHAi0t3HwW7SwBK2jEVK9epU2OYPx50JzE2GgGzBTK4eceVq8NCs6z5x98/QYzbtRB5mRzkOMe32v/tCP0I/2++RC8YWCO3J1XKjxG7t/smBxwHcpQhr5LMbQ8Ypxa2ysNuCd54/GzcMwoASjvtufrYmheXefYLVIrDdPbMD/v+qU8sjxniHCMUBymEYpx+rQzct/1RcP1h8MnVALMVza7XAYTq2TuMACU5OzniUTSPtGIe0vaZUhtbjTx9KjokojaQXmD3kCPi6CgCRNkox1jCiLTbuefSPqeK7YKOn6lm8YLXGDfLOs6D46l0sQzA8AIAI8MT/mYUP9MC8JfDaedjG4vtqTgpiIMtxpnQMMQt0bVzVd6W/x0djYazDJUv3mFFCpqO1zzUyU57s7vpinGY9DS7JW7zzctUgc4MA4jCCB1fiz/qGaytXg82d4mrT9+4jkFrNN/vZfFavRxoUjAL8sRcH3mfy/ww+oAM36NtnW1gLQc7LxxFL1IzxgN86/dkwG8AtRrDJljNEf6PYOa5WGbwUJ5hPVzrlbni/bUBKlrzH6vEKEmSfbrIXHjRreLMEtWnr2sLahROziyTBl2Bef37xBCbKxy4yIxsqIxLETuhJ2+B3ZIEopDxw/XM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH1PR12MB9575.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(22082099003)(18002099003)(11063799006)(56012099006)(3023799007)(4143699003)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bnZjemxCY3czbSt1U04zQjEvQUpsYkZwb0RCdjBSaHQxYWZsRWVBTEFvejA3?= =?utf-8?B?UnYzK2pMeHptakZlT0p4MUkxTTlzSmpQM3d1NG5tS2pHT1AwTUZLQ3V3d2t3?= =?utf-8?B?R1V4K082MHFFRThGL3VVVjdubUkyN2VOdjNOMDIyOHlXejFQZ3lYMzlhN25k?= =?utf-8?B?dHl6dGVObU5nUHJDcmd6SCtBbFhRNnBNeVkrQ3BpMzllUjJHdGJlRkI1djZ6?= =?utf-8?B?OEhlMVprL3FrN3RrN0QzMWtxMnFkQW9PVmhReDVDSkJOM2RaZ2orRXRzbEll?= =?utf-8?B?UXBjclA2aGhZdzlTMW1IZjBkc1hRUDNNdXdUNWc3VEhadDJmK1JMQ3J3aTBw?= =?utf-8?B?VGoxeHdvVkRTL0dyWktLZUlNcW5zNGdXQmR3MzQwVlo3Szl3djBUZFlPbVZP?= =?utf-8?B?Tk4zWUdwckttTlJZcFJubFFKbDJBa3Nrcnc5UWxraHVJZGRLU09xdTBGRE9R?= =?utf-8?B?OWdtUWhiWXJkWWtITm1FVnpqbnVQdVQyNHJsMUd4RnZFTHI0ZnZGcExFdWdJ?= =?utf-8?B?WmdtYWtUenVNeVJCLzlMMWx4cDQwQndma2ZQREZUZ2hPTUoyK3pvL0ZsVjZO?= =?utf-8?B?QnBQRUtmeXNjRnkvdkhUSDgrMmJ2Z1g4ZkRwS2VLdU54a0YydHgwOUFCdFcv?= =?utf-8?B?MVI4UWlzd1I4VTUrblE4cU9RNzZlYTNiTnE2RWNxY3llemovdmtJVTBWOU43?= =?utf-8?B?dzlDdGFYR3RoODhtTCs5Yk1BTFNLL1kxbE5LRDhJejlPL1BTUTVFZ0RwU2Vr?= =?utf-8?B?YWE0K3MrNjJiMVlrMCtrcklDZ0NTRjNsRFdOWEZwLzg5RmthdHVpUi92SGFG?= =?utf-8?B?RnVYcnBYYVBNSmpsbFVXNXpBdFFOSGlGVVpWb2ZiVEd3SWpFWXo0MHZ2VXVE?= =?utf-8?B?azdiUUJ2dW9QMVNON1VUdlpCMnFyeGZubEN4Z25VVTBNb2NMTjBFZFcycklG?= =?utf-8?B?bnVmM0ovTTQ3SkZDc29UbEJmM3FoeWI0N1hEMzdEUThGckw5RHlIZWQwalpQ?= =?utf-8?B?bG5WZGxwUXNuQnFqbVJ2MXhiZnBuNzlhLzhKdkJwcHpMelUvQ1hlRGJwV1Y2?= =?utf-8?B?NWloeTJ6KzZLV2FiZ1JRYjQ1ZU9LaTZVRUgxWlZFak85bTcvTjFNbmJkemZQ?= =?utf-8?B?SHhUTW5DMzlKN0RzUHRCR1gwbnd0a3M2b1BSVHJBZzNLeVF6SExHdmh2Mmg5?= =?utf-8?B?NldxWGM5eUl5MGxId3lYTVVINmphRVpWbHVLWEdBSjJTSmY2VlBFbDFVL1JV?= =?utf-8?B?bnpYTllqZ2dxODQ0b2huYWNKK2JGKzExSGhYVE9EeGxUeklDQjdHemVDZkRq?= =?utf-8?B?aTRiaDd5aENzRGdPcXlBOFlVSm1MT2JnTzhXTi85VytpdXZjUHlpejh3TmZS?= =?utf-8?B?bC9XODYzOUp5SlA0L2ZCeExhUXA1K1FJQWJkT0FXN3I0QzVRSEVhRjNTclVB?= =?utf-8?B?Nlh1Z2FqeFhqSUppV096aWRCVnVWbzJRejBRemJYelgyWHdvcmhmWFQ5dXZD?= =?utf-8?B?ZnYxb2lsYXkxbnhHd2hQUjRoUDRvTHU4R3BqZTgvK1NySENlSUlXYmE0TFRs?= =?utf-8?B?VXFWbC9aUGxGTTc4bkZiKzd6Rml0eEMwN0JFNEVjaWg3M3htRThYcXowam5L?= =?utf-8?B?S0pQdUlsRkpWYWN2b0FKVjcrTVlNSWdMR2V2SVFJZXNJZy95UXlLRHExb1pD?= =?utf-8?B?MHFuM3paaTJTbHlLM3JwcUhkTEhJZU9vL1hiT3BIbzM3dlkvcExLNVM5eW4y?= =?utf-8?B?U0xiMk1XK1dZcGtNbzl6bmdLbkhzZ2VOOTZiakgzUWw5TVFiZndIT0kxYlo3?= =?utf-8?B?MHl3UFJPby9qNjNZbXhUNDhySktmdi9VSkZuOVIza0J2QWJwNVh5WHNZcnV6?= =?utf-8?B?L2FTV3dCVGdna0hxU3pLWm5MajViS2g3U2haSXRUWjkvb2tBRzJmbko1cGYv?= =?utf-8?B?MXg5UHY2VlJyQm1OWEh4ZFhMZ2N5d0I4VFVBTWx3eW9kRUZFT3VwUmE5RUlq?= =?utf-8?B?SEZYMTRnUXo5OXI5RTlaenBvUkpodmhZU2RvRHVYZWxoK3czRFc5elp0RVVX?= =?utf-8?B?d0dMTFNGVXdleHVKVkFpbG1nTGEzTnBBbHAxdU9nTFdOTTFzQzhCZmxCTXpT?= =?utf-8?B?RFMrSHJHbzdtNUZsckx1bzJvdFA0QTZ4OGpHZVZCM2VoL2M3RE5RQjhBRnBw?= =?utf-8?B?NElwOFdRdUdwRXhjUlFOc1NQdnc1a2d4R1RrL011cHp1WEVEeS9kNUF2a2Ry?= =?utf-8?B?MFlTNm1VaUZ5eVpkQTVtaWIyQzBYNVdtV1VCNWV4eWZqR0FMV2QxaXAzdzRu?= =?utf-8?B?NEw5MGE4QjBLMWxNRFFWTWQ4a1JNamhHSUhLanNENmVycmZobGUzZz09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30db5758-88b2-4628-1637-08df024d8972 X-MS-Exchange-CrossTenant-AuthSource: CH1PR12MB9575.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2026 02:06:55.2975 (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: tASxrMPYhTRE0avJbtqifkoi0qwacUHzcxbuEEb5UgSvpqlPisAXYDK0/ZuSTfmbU3uJz2oJHf/vp1qzGCHyDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7218 Hi Tom, On 8/21/26 7:40 AM, Tom Lendacky wrote: > If that is the case, then the fix would be to move the setting of the CAA > into the svsm_perform_call_protocol() function and just make that function > external, which will eliminate the need for svsm_do_call(). > > You would be a pre-patch then for fixing all the callers of > svsm_perform_call_protocol(). This is the code, do you think this is what is in your mind? diff --git a/arch/x86/coco/sev/svsm.c b/arch/x86/coco/sev/svsm.c index e2d3bc3c26eb..f036a85a043b 100644 --- a/arch/x86/coco/sev/svsm.c +++ b/arch/x86/coco/sev/svsm.c @@ -74,6 +74,9 @@ int svsm_perform_call_protocol(struct svsm_call *call) flags = native_local_irq_save(); + if (!call->caa) + call->caa = svsm_get_caa(); + ghcb = __sev_get_ghcb(&state); do { @@ -87,6 +90,7 @@ int svsm_perform_call_protocol(struct svsm_call *call) return ret; } +EXPORT_SYMBOL_GPL(svsm_perform_call_protocol); static u64 svsm_build_ca_from_pfn_range(u64 pfn, u64 pfn_end, bool action, struct svsm_pvalidate_call *pc) @@ -321,7 +325,6 @@ int snp_svsm_vtpm_send_command(u8 *buffer) { struct svsm_call call = {}; - call.caa = svsm_get_caa(); call.rax = SVSM_VTPM_CALL(SVSM_VTPM_CMD); call.rcx = __pa(buffer); @@ -345,7 +348,6 @@ bool snp_svsm_vtpm_probe(void) if (!snp_vmpl) return false; - call.caa = svsm_get_caa(); call.rax = SVSM_VTPM_CALL(SVSM_VTPM_QUERY); if (svsm_perform_call_protocol(&call)) @@ -354,9 +356,3 @@ bool snp_svsm_vtpm_probe(void) /* Check platform commands contains TPM_SEND_COMMAND - platform command 8 */ return call.rcx_out & BIT_ULL(8); } - -int svsm_do_call(struct svsm_call *call) -{ - call->caa = svsm_get_caa(); - return svsm_perform_call_protocol(call); -} diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index f958f78e1db8..9013b392ad40 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -526,7 +526,6 @@ u64 sev_get_status(void); void sev_show_status(void); int prepare_pte_enc(struct pte_enc_desc *d); void set_pte_enc_mask(pte_t *kpte, unsigned long pfn, pgprot_t new_prot); -int svsm_do_call(struct svsm_call *call); void snp_kexec_finish(void); void snp_kexec_begin(void); @@ -536,7 +535,7 @@ void snp_msg_free(struct snp_msg_desc *mdesc); int snp_send_guest_request(struct snp_msg_desc *mdesc, struct snp_guest_req *req); int snp_svsm_vtpm_send_command(u8 *buffer); - +int svsm_perform_call_protocol(struct svsm_call *call); void __init snp_secure_tsc_prepare(void); void __init snp_secure_tsc_init(void); enum es_result savic_register_gpa(u64 gpa); @@ -619,7 +618,6 @@ static inline int rmpadjust(unsigned long vaddr, bool rmp_psize, unsigned long a static inline void setup_ghcb(void) { } static inline void __init early_snp_set_memory_private(unsigned long vaddr, unsigned long paddr, unsigned long npages) { } -static inline int svsm_do_call(struct svsm_call *call) { return 0; } static inline void __init early_snp_set_memory_shared(unsigned long vaddr, unsigned long paddr, unsigned long npages) { } static inline void snp_set_memory_shared(unsigned long vaddr, unsigned long npages) { } @@ -645,6 +643,7 @@ static inline void snp_msg_free(struct snp_msg_desc *mdesc) { } static inline int snp_send_guest_request(struct snp_msg_desc *mdesc, struct snp_guest_req *req) { return -ENODEV; } static inline int snp_svsm_vtpm_send_command(u8 *buffer) { return -ENODEV; } +static inline int svsm_perform_call_protocol(struct svsm_call *call) { return -ENODEV; } static inline void __init snp_secure_tsc_prepare(void) { } static inline void __init snp_secure_tsc_init(void) { } static inline void sev_evict_cache(void *va, int npages) {} Thanks, Melody > > Thanks, > Tom > >> > -- Thanks, Melody