diff options
author | Avi Kivity <avi@qumranet.com> | 2006-12-29 16:49:58 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-30 10:56:44 -0800 |
commit | 55a54f79e091d52c3c2835985c347ea4d2e1c21f (patch) | |
tree | ad47898c216852e053806ee0fd6518380f23c9ab | |
parent | c68876fd2846d2aaf9770276db244b46f2bf52c7 (diff) | |
download | lwn-55a54f79e091d52c3c2835985c347ea4d2e1c21f.tar.gz lwn-55a54f79e091d52c3c2835985c347ea4d2e1c21f.zip |
[PATCH] KVM: Fix oops on oom
__free_page() doesn't like a NULL argument, so check before calling it. A
NULL can only happen if memory is exhausted during allocation of a memory
slot.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/kvm/kvm_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index 0e618bcfe1da..973544553cba 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c @@ -245,7 +245,8 @@ static void kvm_free_physmem_slot(struct kvm_memory_slot *free, if (!dont || free->phys_mem != dont->phys_mem) if (free->phys_mem) { for (i = 0; i < free->npages; ++i) - __free_page(free->phys_mem[i]); + if (free->phys_mem[i]) + __free_page(free->phys_mem[i]); vfree(free->phys_mem); } |