The comment says function wa_nep_queue() should return 0 if ok, and <0
errno code on error. However, its implementation always returns 0, even
if the call to kzalloc() fails. As a result, the return value may be
inconsistent with the execution status, which may mislead the callers.
This patch fixes the bug, returning -ENOMEM when the call to kzalloc()
fails.

Signed-off-by: Pan Bian <[email protected]>
---
 drivers/usb/wusbcore/wa-nep.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/wusbcore/wa-nep.c b/drivers/usb/wusbcore/wa-nep.c
index ed46222..e3819fc 100644
--- a/drivers/usb/wusbcore/wa-nep.c
+++ b/drivers/usb/wusbcore/wa-nep.c
@@ -198,6 +198,7 @@ static int wa_nep_queue(struct wahc *wa, size_t size)
        if (nw == NULL) {
                if (printk_ratelimit())
                        dev_err(dev, "No memory to queue notification\n");
+               result = -ENOMEM;
                goto out;
        }
        INIT_WORK(&nw->work, wa_notif_dispatch);
-- 
1.9.1


Reply via email to