Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8eeb04a authored by Avi Kivity's avatar Avi Kivity
Browse files

KVM: Add mini-API for vcpu->requests



Makes it a little more readable and hackable.

Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 36633f32
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -534,7 +534,7 @@ static void __report_tpr_access(struct kvm_lapic *apic, bool write)
	struct kvm_vcpu *vcpu = apic->vcpu;
	struct kvm_run *run = vcpu->run;

	set_bit(KVM_REQ_REPORT_TPR_ACCESS, &vcpu->requests);
	kvm_make_request(KVM_REQ_REPORT_TPR_ACCESS, vcpu);
	run->tpr_access.rip = kvm_rip_read(vcpu);
	run->tpr_access.is_write = write;
}
+3 −3
Original line number Diff line number Diff line
@@ -1378,7 +1378,7 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu,

		mmu_page_add_parent_pte(vcpu, sp, parent_pte);
		if (sp->unsync_children) {
			set_bit(KVM_REQ_MMU_SYNC, &vcpu->requests);
			kvm_make_request(KVM_REQ_MMU_SYNC, vcpu);
			kvm_mmu_mark_parents_unsync(sp);
		} else if (sp->unsync)
			kvm_mmu_mark_parents_unsync(sp);
@@ -2131,7 +2131,7 @@ static int mmu_check_root(struct kvm_vcpu *vcpu, gfn_t root_gfn)
	int ret = 0;

	if (!kvm_is_visible_gfn(vcpu->kvm, root_gfn)) {
		set_bit(KVM_REQ_TRIPLE_FAULT, &vcpu->requests);
		kvm_make_request(KVM_REQ_TRIPLE_FAULT, vcpu);
		ret = 1;
	}

@@ -2329,7 +2329,7 @@ static int nonpaging_init_context(struct kvm_vcpu *vcpu)
void kvm_mmu_flush_tlb(struct kvm_vcpu *vcpu)
{
	++vcpu->stat.tlb_flush;
	set_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests);
	kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
}

static void paging_new_cr3(struct kvm_vcpu *vcpu)
+1 −1
Original line number Diff line number Diff line
@@ -1494,7 +1494,7 @@ static void svm_handle_mce(struct vcpu_svm *svm)
		 */
		pr_err("KVM: Guest triggered AMD Erratum 383\n");

		set_bit(KVM_REQ_TRIPLE_FAULT, &svm->vcpu.requests);
		kvm_make_request(KVM_REQ_TRIPLE_FAULT, &svm->vcpu);

		return;
	}
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ static int __kvm_timer_fn(struct kvm_vcpu *vcpu, struct kvm_timer *ktimer)
	if (ktimer->reinject || !atomic_read(&ktimer->pending)) {
		atomic_inc(&ktimer->pending);
		/* FIXME: this code should not know anything about vcpus */
		set_bit(KVM_REQ_PENDING_TIMER, &vcpu->requests);
		kvm_make_request(KVM_REQ_PENDING_TIMER, vcpu);
	}

	if (waitqueue_active(q))
+1 −1
Original line number Diff line number Diff line
@@ -899,7 +899,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
		unsigned long sysenter_esp;

		kvm_migrate_timers(vcpu);
		set_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests);
		kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
		local_irq_disable();
		list_add(&vmx->local_vcpus_link,
			 &per_cpu(vcpus_on_cpu, cpu));
Loading