Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 80645
b: refs/heads/master
c: d589444
h: refs/heads/master
i:
  80643: 0d33d5d
v: v3
  • Loading branch information
Rusty Russell authored and Avi Kivity committed Jan 30, 2008
1 parent 829f3c7 commit 51542f6
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 82ce2c96831f049a37118733ced5c8f7c8848102
refs/heads/master: d589444e924bc72e42fa94853f9096589d69374d
2 changes: 1 addition & 1 deletion trunk/drivers/kvm/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ int kvm_apic_accept_pic_intr(struct kvm_vcpu *vcpu);
int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu);
int kvm_create_lapic(struct kvm_vcpu *vcpu);
void kvm_lapic_reset(struct kvm_vcpu *vcpu);
void kvm_free_apic(struct kvm_lapic *apic);
void kvm_free_lapic(struct kvm_vcpu *vcpu);
u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu);
void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8);
void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value);
Expand Down
4 changes: 1 addition & 3 deletions trunk/drivers/kvm/kvm_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -268,10 +268,8 @@ EXPORT_SYMBOL_GPL(kvm_vcpu_init);

void kvm_vcpu_uninit(struct kvm_vcpu *vcpu)
{
kvm_free_lapic(vcpu);
kvm_mmu_destroy(vcpu);
if (vcpu->apic)
hrtimer_cancel(&vcpu->apic->timer.dev);
kvm_free_apic(vcpu->apic);
free_page((unsigned long)vcpu->pio_data);
free_page((unsigned long)vcpu->run);
}
Expand Down
19 changes: 9 additions & 10 deletions trunk/drivers/kvm/lapic.c
Original file line number Diff line number Diff line change
Expand Up @@ -762,19 +762,17 @@ static int apic_mmio_range(struct kvm_io_device *this, gpa_t addr)
return ret;
}

void kvm_free_apic(struct kvm_lapic *apic)
void kvm_free_lapic(struct kvm_vcpu *vcpu)
{
if (!apic)
if (!vcpu->apic)
return;

hrtimer_cancel(&apic->timer.dev);
hrtimer_cancel(&vcpu->apic->timer.dev);

if (apic->regs_page) {
__free_page(apic->regs_page);
apic->regs_page = 0;
}
if (vcpu->apic->regs_page)
__free_page(vcpu->apic->regs_page);

kfree(apic);
kfree(vcpu->apic);
}

/*
Expand Down Expand Up @@ -962,7 +960,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
if (apic->regs_page == NULL) {
printk(KERN_ERR "malloc apic regs error for vcpu %x\n",
vcpu->vcpu_id);
goto nomem;
goto nomem_free_apic;
}
apic->regs = page_address(apic->regs_page);
memset(apic->regs, 0, PAGE_SIZE);
Expand All @@ -980,8 +978,9 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
apic->dev.private = apic;

return 0;
nomem_free_apic:
kfree(apic);
nomem:
kvm_free_apic(apic);
return -ENOMEM;
}
EXPORT_SYMBOL_GPL(kvm_create_lapic);
Expand Down

0 comments on commit 51542f6

Please sign in to comment.