On 02/08/2018 10:35 PM, David Rientjes wrote: > The KVM_SET_GSI_ROUTING ioctl does a vmalloc() of > sizeof(struct kvm_irq_routing_entry) multiplied by a user-supplied value. > This can be up to 4096 entries on architectures such as arm64 and s390 > (and the upper bound may be increased on s390 eventually). > > This can produce a vmalloc allocation failure warning: > [...] > kvm_vm_ioctl+0x910/0x15e0 arch/x86/kvm/../../../virt/kvm/kvm_main.c:4153 ^^^^^ > @@ -3063,7 +3063,8 @@ static long kvm_vm_ioctl(struct file *filp, ^^^^^ Are you sure that you got the right vmalloc? > goto out; > if (routing.nr) { > r = -ENOMEM; > - entries = vmalloc(routing.nr * sizeof(*entries)); > + entries = __vmalloc(routing.nr * sizeof(*entries), > + GFP_KERNEL | __GFP_NOWARN, PAGE_KERNEL); > if (!entries) > goto out; > r = -EFAULT; >