diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index 047f9f94d72d0d10fd2acbbfd05a2e768fe47cd0..56593a9a87268cc0f6d8181cb5f8021c252b457b 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -421,12 +421,10 @@ static int usb_unbind_interface(struct device *dev) if (ep->streams == 0) continue; if (j == 0) { - eps = kmalloc(USB_MAXENDPOINTS * sizeof(void *), + eps = kmalloc_array(USB_MAXENDPOINTS, sizeof(void *), GFP_KERNEL); - if (!eps) { - dev_warn(dev, "oom, leaking streams\n"); + if (!eps) break; - } } eps[j++] = ep; }