Skip to content

Commit ce62118

Browse files
tlendackysean-jc
authored andcommitted
KVM: SEV: Consolidate the SEV policy bits in a single header file
Consolidate SEV policy bit definitions into a single file. Use include/linux/psp-sev.h to hold the definitions and remove the current definitions from the arch/x86/kvm/svm/sev.c and arch/x86/include/svm.h files. No functional change intended. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Link: https://patch.msgid.link/d9639f88a0b521a1a67aeac77cc609fdea1f90bd.1761593632.git.thomas.lendacky@amd.com Signed-off-by: Sean Christopherson <seanjc@google.com>
1 parent 9f4ce48 commit ce62118

File tree

3 files changed

+23
-15
lines changed

3 files changed

+23
-15
lines changed

arch/x86/kvm/svm/sev.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,7 @@ module_param_named(ciphertext_hiding_asids, nr_ciphertext_hiding_asids, uint, 04
6565
#define AP_RESET_HOLD_NAE_EVENT 1
6666
#define AP_RESET_HOLD_MSR_PROTO 2
6767

68-
/* As defined by SEV-SNP Firmware ABI, under "Guest Policy". */
69-
#define SNP_POLICY_MASK_API_MINOR GENMASK_ULL(7, 0)
70-
#define SNP_POLICY_MASK_API_MAJOR GENMASK_ULL(15, 8)
71-
#define SNP_POLICY_MASK_SMT BIT_ULL(16)
72-
#define SNP_POLICY_MASK_RSVD_MBO BIT_ULL(17)
73-
#define SNP_POLICY_MASK_DEBUG BIT_ULL(19)
74-
#define SNP_POLICY_MASK_SINGLE_SOCKET BIT_ULL(20)
75-
76-
#define SNP_POLICY_MASK_VALID (SNP_POLICY_MASK_API_MINOR | \
68+
#define KVM_SNP_POLICY_MASK_VALID (SNP_POLICY_MASK_API_MINOR | \
7769
SNP_POLICY_MASK_API_MAJOR | \
7870
SNP_POLICY_MASK_SMT | \
7971
SNP_POLICY_MASK_RSVD_MBO | \
@@ -2207,7 +2199,7 @@ static int snp_launch_start(struct kvm *kvm, struct kvm_sev_cmd *argp)
22072199
if (params.flags)
22082200
return -EINVAL;
22092201

2210-
if (params.policy & ~SNP_POLICY_MASK_VALID)
2202+
if (params.policy & ~KVM_SNP_POLICY_MASK_VALID)
22112203
return -EINVAL;
22122204

22132205
/* Check for policy bits that must be set */
@@ -5085,10 +5077,10 @@ struct vmcb_save_area *sev_decrypt_vmsa(struct kvm_vcpu *vcpu)
50855077

50865078
/* Check if the SEV policy allows debugging */
50875079
if (sev_snp_guest(vcpu->kvm)) {
5088-
if (!(sev->policy & SNP_POLICY_DEBUG))
5080+
if (!(sev->policy & SNP_POLICY_MASK_DEBUG))
50895081
return NULL;
50905082
} else {
5091-
if (sev->policy & SEV_POLICY_NODBG)
5083+
if (sev->policy & SEV_POLICY_MASK_NODBG)
50925084
return NULL;
50935085
}
50945086

arch/x86/kvm/svm/svm.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,6 @@ struct kvm_sev_info {
117117
cpumask_var_t have_run_cpus; /* CPUs that have done VMRUN for this VM. */
118118
};
119119

120-
#define SEV_POLICY_NODBG BIT_ULL(0)
121-
#define SNP_POLICY_DEBUG BIT_ULL(19)
122-
123120
struct kvm_svm {
124121
struct kvm kvm;
125122

include/linux/psp-sev.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,25 @@
1414

1515
#include <uapi/linux/psp-sev.h>
1616

17+
/* As defined by SEV API, under "Guest Policy". */
18+
#define SEV_POLICY_MASK_NODBG BIT(0)
19+
#define SEV_POLICY_MASK_NOKS BIT(1)
20+
#define SEV_POLICY_MASK_ES BIT(2)
21+
#define SEV_POLICY_MASK_NOSEND BIT(3)
22+
#define SEV_POLICY_MASK_DOMAIN BIT(4)
23+
#define SEV_POLICY_MASK_SEV BIT(5)
24+
#define SEV_POLICY_MASK_API_MAJOR GENMASK(23, 16)
25+
#define SEV_POLICY_MASK_API_MINOR GENMASK(31, 24)
26+
27+
/* As defined by SEV-SNP Firmware ABI, under "Guest Policy". */
28+
#define SNP_POLICY_MASK_API_MINOR GENMASK_ULL(7, 0)
29+
#define SNP_POLICY_MASK_API_MAJOR GENMASK_ULL(15, 8)
30+
#define SNP_POLICY_MASK_SMT BIT_ULL(16)
31+
#define SNP_POLICY_MASK_RSVD_MBO BIT_ULL(17)
32+
#define SNP_POLICY_MASK_MIGRATE_MA BIT_ULL(18)
33+
#define SNP_POLICY_MASK_DEBUG BIT_ULL(19)
34+
#define SNP_POLICY_MASK_SINGLE_SOCKET BIT_ULL(20)
35+
1736
#define SEV_FW_BLOB_MAX_SIZE 0x4000 /* 16KB */
1837

1938
/**

0 commit comments

Comments
 (0)