Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: core: hcd: Fix return value check in usb_hcd_setup_local_mem()

If dmam_alloc_attrs() fails, it returns NULL pointer and never
return ERR_PTR(), so repleace IS_ERR() with IS_ERR_OR_NULL()
and if it's NULL, returns -ENOMEM.

Fixes: 9ba26f5cecd8 ("ARM: sa1100/assabet: move dmabounce hack to ohci driver")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20221125064120.2842452-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Yang Yingliang and committed by
Greg Kroah-Hartman
3c347cda 57b7b733

+5 -1
+5 -1
drivers/usb/core/hcd.c
··· 3133 3133 GFP_KERNEL, 3134 3134 DMA_ATTR_WRITE_COMBINE); 3135 3135 3136 - if (IS_ERR(local_mem)) 3136 + if (IS_ERR_OR_NULL(local_mem)) { 3137 + if (!local_mem) 3138 + return -ENOMEM; 3139 + 3137 3140 return PTR_ERR(local_mem); 3141 + } 3138 3142 3139 3143 /* 3140 3144 * Here we pass a dma_addr_t but the arg type is a phys_addr_t.