KVM: use __vcalloc for very large allocations
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 8 Mar 2022 09:49:37 +0000 (04:49 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Jul 2022 14:35:02 +0000 (16:35 +0200)
commit6784b694ecd82c1c396f82e012ef892eb409a8d7
tree1b34e0e33816705bca3787899848d0f9101cd1f3
parentc33904fd1ef49095488060f8e3ac807c6d70ca04
KVM: use __vcalloc for very large allocations

[ Upstream commit 37b2a6510a48ca361ced679f92682b7b7d7d0330 ]

Allocations whose size is related to the memslot size can be arbitrarily
large.  Do not use kvzalloc/kvcalloc, as those are limited to "not crazy"
sizes that fit in 32 bits.

Cc: stable@vger.kernel.org
Fixes: 7661809d493b ("mm: don't allow oversized kvmalloc() calls")
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/powerpc/kvm/book3s_hv_uvmem.c
arch/x86/kvm/mmu/page_track.c
arch/x86/kvm/x86.c
virt/kvm/kvm_main.c