| From cfeb60c1831a2b0d87c01691272b766961c37796 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 15 Aug 2023 23:01:57 +1200 |
| Subject: x86/tdx: Make macros of TDCALLs consistent with the spec |
| |
| From: Kai Huang <kai.huang@intel.com> |
| |
| [ Upstream commit f0024dbfc48d8814d915eb5bd5253496b9b8a6df ] |
| |
| The TDX spec names all TDCALLs with prefix "TDG". Currently, the kernel |
| doesn't follow such convention for the macros of those TDCALLs but uses |
| prefix "TDX_" for all of them. Although it's arguable whether the TDX |
| spec names those TDCALLs properly, it's better for the kernel to follow |
| the spec when naming those macros. |
| |
| Change all macros of TDCALLs to make them consistent with the spec. As |
| a bonus, they get distinguished easily from the host-side SEAMCALLs, |
| which all have prefix "TDH". |
| |
| No functional change intended. |
| |
| Signed-off-by: Kai Huang <kai.huang@intel.com> |
| Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> |
| Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> |
| Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> |
| Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> |
| Link: https://lore.kernel.org/all/516dccd0bd8fb9a0b6af30d25bb2d971aa03d598.1692096753.git.kai.huang%40intel.com |
| Stable-dep-of: f65aa0ad79fc ("x86/tdx: Dynamically disable SEPT violations from causing #VEs") |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/x86/coco/tdx/tdx-shared.c | 4 ++-- |
| arch/x86/coco/tdx/tdx.c | 8 ++++---- |
| arch/x86/include/asm/shared/tdx.h | 10 +++++----- |
| 3 files changed, 11 insertions(+), 11 deletions(-) |
| |
| diff --git a/arch/x86/coco/tdx/tdx-shared.c b/arch/x86/coco/tdx/tdx-shared.c |
| index ef20ddc37b58a..f10cd3e4a04ed 100644 |
| --- a/arch/x86/coco/tdx/tdx-shared.c |
| +++ b/arch/x86/coco/tdx/tdx-shared.c |
| @@ -35,7 +35,7 @@ static unsigned long try_accept_one(phys_addr_t start, unsigned long len, |
| } |
| |
| tdcall_rcx = start | page_size; |
| - if (__tdx_module_call(TDX_ACCEPT_PAGE, tdcall_rcx, 0, 0, 0, NULL)) |
| + if (__tdx_module_call(TDG_MEM_PAGE_ACCEPT, tdcall_rcx, 0, 0, 0, NULL)) |
| return 0; |
| |
| return accept_size; |
| @@ -45,7 +45,7 @@ bool tdx_accept_memory(phys_addr_t start, phys_addr_t end) |
| { |
| /* |
| * For shared->private conversion, accept the page using |
| - * TDX_ACCEPT_PAGE TDX module call. |
| + * TDG_MEM_PAGE_ACCEPT TDX module call. |
| */ |
| while (start < end) { |
| unsigned long len = end - start; |
| diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c |
| index 905ac8a3f7165..fd389b137fab8 100644 |
| --- a/arch/x86/coco/tdx/tdx.c |
| +++ b/arch/x86/coco/tdx/tdx.c |
| @@ -93,7 +93,7 @@ int tdx_mcall_get_report0(u8 *reportdata, u8 *tdreport) |
| { |
| u64 ret; |
| |
| - ret = __tdx_module_call(TDX_GET_REPORT, virt_to_phys(tdreport), |
| + ret = __tdx_module_call(TDG_MR_REPORT, virt_to_phys(tdreport), |
| virt_to_phys(reportdata), TDREPORT_SUBTYPE_0, |
| 0, NULL); |
| if (ret) { |
| @@ -154,7 +154,7 @@ static void tdx_parse_tdinfo(u64 *cc_mask) |
| * Guest-Host-Communication Interface (GHCI), section 2.4.2 TDCALL |
| * [TDG.VP.INFO]. |
| */ |
| - tdx_module_call(TDX_GET_INFO, 0, 0, 0, 0, &out); |
| + tdx_module_call(TDG_VP_INFO, 0, 0, 0, 0, &out); |
| |
| /* |
| * The highest bit of a guest physical address is the "sharing" bit. |
| @@ -600,7 +600,7 @@ void tdx_get_ve_info(struct ve_info *ve) |
| * Note, the TDX module treats virtual NMIs as inhibited if the #VE |
| * valid flag is set. It means that NMI=>#VE will not result in a #DF. |
| */ |
| - tdx_module_call(TDX_GET_VEINFO, 0, 0, 0, 0, &out); |
| + tdx_module_call(TDG_VP_VEINFO_GET, 0, 0, 0, 0, &out); |
| |
| /* Transfer the output parameters */ |
| ve->exit_reason = out.rcx; |
| @@ -780,7 +780,7 @@ void __init tdx_early_init(void) |
| cc_set_mask(cc_mask); |
| |
| /* Kernel does not use NOTIFY_ENABLES and does not need random #VEs */ |
| - tdx_module_call(TDX_WR, 0, TDCS_NOTIFY_ENABLES, 0, -1ULL, NULL); |
| + tdx_module_call(TDG_VM_WR, 0, TDCS_NOTIFY_ENABLES, 0, -1ULL, NULL); |
| |
| /* |
| * All bits above GPA width are reserved and kernel treats shared bit |
| diff --git a/arch/x86/include/asm/shared/tdx.h b/arch/x86/include/asm/shared/tdx.h |
| index 7513b3bb69b7e..78f109446da6f 100644 |
| --- a/arch/x86/include/asm/shared/tdx.h |
| +++ b/arch/x86/include/asm/shared/tdx.h |
| @@ -11,11 +11,11 @@ |
| #define TDX_IDENT "IntelTDX " |
| |
| /* TDX module Call Leaf IDs */ |
| -#define TDX_GET_INFO 1 |
| -#define TDX_GET_VEINFO 3 |
| -#define TDX_GET_REPORT 4 |
| -#define TDX_ACCEPT_PAGE 6 |
| -#define TDX_WR 8 |
| +#define TDG_VP_INFO 1 |
| +#define TDG_VP_VEINFO_GET 3 |
| +#define TDG_MR_REPORT 4 |
| +#define TDG_MEM_PAGE_ACCEPT 6 |
| +#define TDG_VM_WR 8 |
| |
| /* TDCS fields. To be used by TDG.VM.WR and TDG.VM.RD module calls */ |
| #define TDCS_NOTIFY_ENABLES 0x9100000000000010 |
| -- |
| 2.43.0 |
| |