Lines Matching refs:sev
16 #include <linux/psp-sev.h>
53 module_param_named(sev, sev_enabled, bool, 0444);
132 static int sev_misc_cg_try_charge(struct kvm_sev_info *sev)
134 enum misc_res_type type = sev->es_active ? MISC_CG_RES_SEV_ES : MISC_CG_RES_SEV;
135 return misc_cg_try_charge(type, sev->misc_cg, 1);
138 static void sev_misc_cg_uncharge(struct kvm_sev_info *sev)
140 enum misc_res_type type = sev->es_active ? MISC_CG_RES_SEV_ES : MISC_CG_RES_SEV;
141 misc_cg_uncharge(type, sev->misc_cg, 1);
144 static int sev_asid_new(struct kvm_sev_info *sev)
149 WARN_ON(sev->misc_cg);
150 sev->misc_cg = get_current_misc_cg();
151 ret = sev_misc_cg_try_charge(sev);
153 put_misc_cg(sev->misc_cg);
154 sev->misc_cg = NULL;
164 min_asid = sev->es_active ? 1 : min_sev_asid;
165 max_asid = sev->es_active ? min_sev_asid - 1 : max_sev_asid;
184 sev_misc_cg_uncharge(sev);
185 put_misc_cg(sev->misc_cg);
186 sev->misc_cg = NULL;
192 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
194 return sev->asid;
197 static void sev_asid_free(struct kvm_sev_info *sev)
204 __set_bit(sev->asid, sev_reclaim_asid_bitmap);
208 sd->sev_vmcbs[sev->asid] = NULL;
213 sev_misc_cg_uncharge(sev);
214 put_misc_cg(sev->misc_cg);
215 sev->misc_cg = NULL;
248 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
255 if (unlikely(sev->active))
258 sev->active = true;
259 sev->es_active = argp->id == KVM_SEV_ES_INIT;
260 asid = sev_asid_new(sev);
263 sev->asid = asid;
269 INIT_LIST_HEAD(&sev->regions_list);
270 INIT_LIST_HEAD(&sev->mirror_vms);
277 sev_asid_free(sev);
278 sev->asid = 0;
280 sev->es_active = false;
281 sev->active = false;
316 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
318 return __sev_issue_cmd(sev->fd, id, data, error);
323 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
383 sev->handle = start.handle;
384 sev->fd = argp->sev_fd;
397 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
415 locked = sev->pages_locked + npages;
444 sev->pages_locked = locked;
459 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
463 sev->pages_locked -= npages;
507 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
535 data.handle = sev->handle;
687 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
720 data.handle = sev->handle;
748 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
754 data.handle = sev->handle;
760 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
770 data.handle = sev->handle;
789 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
793 data.handle = sev->handle;
1017 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1073 data.handle = sev->handle;
1093 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1126 data.handle = sev->handle;
1156 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1161 data.handle = sev->handle;
1174 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1235 data.handle = sev->handle;
1267 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1272 data.handle = sev->handle;
1287 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1341 data.handle = sev->handle;
1372 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1378 data.handle = sev->handle;
1384 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1390 data.handle = sev->handle;
1396 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1457 sev->handle = start.handle;
1458 sev->fd = argp->sev_fd;
1470 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1530 data.handle = sev->handle;
1547 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1553 data.handle = sev->handle;
1952 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1981 list_add_tail(®ion->list, &sev->regions_list);
2002 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
2003 struct list_head *head = &sev->regions_list;
2130 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
2131 struct list_head *head = &sev->regions_list;
2137 WARN_ON(!list_empty(&sev->mirror_vms));
2139 /* If this is a mirror_kvm release the enc_context_owner and skip sev cleanup */
2141 struct kvm *owner_kvm = sev->enc_context_owner;
2144 list_del(&sev->mirror_entry);
2169 sev_unbind_asid(kvm, sev->handle);
2170 sev_asid_free(sev);
2910 struct kvm_sev_info *sev = &to_kvm_svm(vcpu->kvm)->sev_info;
2915 sev->ap_jump_table = control->exit_info_2;
2919 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, sev->ap_jump_table);
2982 /* For sev guests, the memory encryption bit is not reserved in CR3. */