KVM: x86: Remove useless regs_page pointer from kvm_lapic
Access to this page is mostly done through the regs member which holds the address to this page. The exceptions are in vmx_vcpu_reset() and kvm_free_lapic() and these both can easily be converted to using regs. Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
c8ce057eaf
commit
afc20184b7
|
@ -871,8 +871,8 @@ void kvm_free_lapic(struct kvm_vcpu *vcpu)
|
|||
|
||||
hrtimer_cancel(&vcpu->arch.apic->lapic_timer.timer);
|
||||
|
||||
if (vcpu->arch.apic->regs_page)
|
||||
__free_page(vcpu->arch.apic->regs_page);
|
||||
if (vcpu->arch.apic->regs)
|
||||
free_page((unsigned long)vcpu->arch.apic->regs);
|
||||
|
||||
kfree(vcpu->arch.apic);
|
||||
}
|
||||
|
@ -1061,13 +1061,12 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
|
|||
|
||||
vcpu->arch.apic = apic;
|
||||
|
||||
apic->regs_page = alloc_page(GFP_KERNEL|__GFP_ZERO);
|
||||
if (apic->regs_page == NULL) {
|
||||
apic->regs = (void *)get_zeroed_page(GFP_KERNEL);
|
||||
if (!apic->regs) {
|
||||
printk(KERN_ERR "malloc apic regs error for vcpu %x\n",
|
||||
vcpu->vcpu_id);
|
||||
goto nomem_free_apic;
|
||||
}
|
||||
apic->regs = page_address(apic->regs_page);
|
||||
apic->vcpu = vcpu;
|
||||
|
||||
hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC,
|
||||
|
|
|
@ -13,7 +13,6 @@ struct kvm_lapic {
|
|||
u32 divide_count;
|
||||
struct kvm_vcpu *vcpu;
|
||||
bool irr_pending;
|
||||
struct page *regs_page;
|
||||
void *regs;
|
||||
gpa_t vapic_addr;
|
||||
struct page *vapic_page;
|
||||
|
|
|
@ -2821,7 +2821,7 @@ static int vmx_vcpu_reset(struct kvm_vcpu *vcpu)
|
|||
vmcs_write64(VIRTUAL_APIC_PAGE_ADDR, 0);
|
||||
if (vm_need_tpr_shadow(vmx->vcpu.kvm))
|
||||
vmcs_write64(VIRTUAL_APIC_PAGE_ADDR,
|
||||
page_to_phys(vmx->vcpu.arch.apic->regs_page));
|
||||
__pa(vmx->vcpu.arch.apic->regs));
|
||||
vmcs_write32(TPR_THRESHOLD, 0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue