wusb: fix error path for wusb_set_dev_addr()
Anderson Lizardo [Wed, 17 Sep 2008 15:34:31 +0000 (16:34 +0100)]
Error path for wusb_set_dev_addr() was handled incorrectly. Fix it by
considering error only when return value is negative.

Signed-off-by: Anderson Lizardo <anderson.lizardo@indt.org.br>
Signed-off-by: David Vrabel <david.vrabel@csr.com>

drivers/usb/wusbcore/devconnect.c

index f05f9b4..30d7020 100644 (file)
@@ -239,8 +239,8 @@ static struct wusb_dev *wusbhc_cack_add(struct wusbhc *wusbhc,
                        "port %u\n", dev_addr, port_idx);
 
                result = wusb_set_dev_addr(wusbhc, wusb_dev, dev_addr);
-               if (result)
-                       return  NULL;
+               if (result < 0)
+                       return NULL;
        }
        wusb_dev->entry_ts = jiffies;
        list_add_tail(&wusb_dev->cack_node, &wusbhc->cack_list);
@@ -1301,7 +1301,7 @@ int wusb_set_dev_addr(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev, u8 addr)
 
        wusb_dev->addr = addr;
        result = wusbhc->dev_info_set(wusbhc, wusb_dev);
-       if (result)
+       if (result < 0)
                dev_err(wusbhc->dev, "device %d: failed to set device "
                        "address\n", wusb_dev->port_idx);
        else