| From 3b80fffe2b31fb716d3ebe729c54464ee7856723 Mon Sep 17 00:00:00 2001 |
| From: Izik Eidus <ieidus@redhat.com> |
| Date: Tue, 28 Jul 2009 15:26:58 -0300 |
| Subject: KVM: MMU: make __kvm_mmu_free_some_pages handle empty list |
| |
| From: Izik Eidus <ieidus@redhat.com> |
| |
| commit 3b80fffe2b31fb716d3ebe729c54464ee7856723 upstream. |
| |
| First check if the list is empty before attempting to look at list |
| entries. |
| |
| Signed-off-by: Izik Eidus <ieidus@redhat.com> |
| Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> |
| Signed-off-by: Avi Kivity <avi@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/x86/kvm/mmu.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/arch/x86/kvm/mmu.c |
| +++ b/arch/x86/kvm/mmu.c |
| @@ -2633,7 +2633,8 @@ EXPORT_SYMBOL_GPL(kvm_mmu_unprotect_page |
| |
| void __kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu) |
| { |
| - while (vcpu->kvm->arch.n_free_mmu_pages < KVM_REFILL_PAGES) { |
| + while (vcpu->kvm->arch.n_free_mmu_pages < KVM_REFILL_PAGES && |
| + !list_empty(&vcpu->kvm->arch.active_mmu_pages)) { |
| struct kvm_mmu_page *sp; |
| |
| sp = container_of(vcpu->kvm->arch.active_mmu_pages.prev, |