Lines Matching refs:sev_es

57 module_param_named(sev_es, sev_es_enabled, bool, 0444);
574 struct sev_es_save_area *save = svm->sev_es.vmsa;
646 clflush_cache_range(svm->sev_es.vmsa, PAGE_SIZE);
650 vmsa.address = __sme_pa(svm->sev_es.vmsa);
1750 memcpy(&dst_svm->sev_es, &src_svm->sev_es, sizeof(src_svm->sev_es));
1755 memset(&src_svm->sev_es, 0, sizeof(src_svm->sev_es));
2364 sev_flush_encrypted_page(vcpu, svm->sev_es.vmsa);
2366 __free_page(virt_to_page(svm->sev_es.vmsa));
2368 if (svm->sev_es.ghcb_sa_free)
2369 kvfree(svm->sev_es.ghcb_sa);
2374 struct ghcb *ghcb = svm->sev_es.ghcb;
2400 struct ghcb *ghcb = svm->sev_es.ghcb;
2420 struct ghcb *ghcb = svm->sev_es.ghcb;
2437 BUILD_BUG_ON(sizeof(svm->sev_es.valid_bitmap) != sizeof(ghcb->save.valid_bitmap));
2438 memcpy(&svm->sev_es.valid_bitmap, &ghcb->save.valid_bitmap, sizeof(ghcb->save.valid_bitmap));
2459 svm->sev_es.sw_scratch = kvm_ghcb_get_sw_scratch_if_valid(svm, ghcb);
2484 if (svm->sev_es.ghcb->ghcb_usage) {
2578 svm->sev_es.ghcb->ghcb_usage);
2588 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 2);
2589 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, reason);
2597 if (!svm->sev_es.ghcb)
2600 if (svm->sev_es.ghcb_sa_free) {
2606 if (svm->sev_es.ghcb_sa_sync) {
2608 svm->sev_es.sw_scratch,
2609 svm->sev_es.ghcb_sa,
2610 svm->sev_es.ghcb_sa_len);
2611 svm->sev_es.ghcb_sa_sync = false;
2614 kvfree(svm->sev_es.ghcb_sa);
2615 svm->sev_es.ghcb_sa = NULL;
2616 svm->sev_es.ghcb_sa_free = false;
2619 trace_kvm_vmgexit_exit(svm->vcpu.vcpu_id, svm->sev_es.ghcb);
2623 kvm_vcpu_unmap(&svm->vcpu, &svm->sev_es.ghcb_map, true);
2624 svm->sev_es.ghcb = NULL;
2658 scratch_gpa_beg = svm->sev_es.sw_scratch;
2689 scratch_va = (void *)svm->sev_es.ghcb;
2719 svm->sev_es.ghcb_sa_sync = sync;
2720 svm->sev_es.ghcb_sa_free = true;
2723 svm->sev_es.ghcb_sa = scratch_va;
2724 svm->sev_es.ghcb_sa_len = len;
2729 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 2);
2730 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, GHCB_ERR_INVALID_SCRATCH_AREA);
2857 if (kvm_vcpu_map(vcpu, ghcb_gpa >> PAGE_SHIFT, &svm->sev_es.ghcb_map)) {
2866 svm->sev_es.ghcb = svm->sev_es.ghcb_map.hva;
2868 trace_kvm_vmgexit_enter(vcpu->vcpu_id, svm->sev_es.ghcb);
2875 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 0);
2876 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, 0);
2888 svm->sev_es.ghcb_sa);
2898 svm->sev_es.ghcb_sa);
2919 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, sev->ap_jump_table);
2924 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 2);
2925 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, GHCB_ERR_INVALID_INPUT);
2961 return kvm_sev_es_string_io(&svm->vcpu, size, port, svm->sev_es.ghcb_sa,
3006 if (svm->sev_es.vmsa)
3007 svm->vmcb->control.vmsa_pa = __pa(svm->sev_es.vmsa);
3126 if (!svm->sev_es.received_first_sipi) {
3127 svm->sev_es.received_first_sipi = true;
3136 if (!svm->sev_es.ghcb)
3139 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, 1);