diff options
Diffstat (limited to 'drivers/net/wireless/zd1201.c')
-rw-r--r-- | drivers/net/wireless/zd1201.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/wireless/zd1201.c b/drivers/net/wireless/zd1201.c index 4941f201d6c8..d39c4178c33a 100644 --- a/drivers/net/wireless/zd1201.c +++ b/drivers/net/wireless/zd1201.c | |||
@@ -75,8 +75,10 @@ static int zd1201_fw_upload(struct usb_device *dev, int apfw) | |||
75 | len = fw_entry->size; | 75 | len = fw_entry->size; |
76 | 76 | ||
77 | buf = kmalloc(1024, GFP_ATOMIC); | 77 | buf = kmalloc(1024, GFP_ATOMIC); |
78 | if (!buf) | 78 | if (!buf) { |
79 | err = -ENOMEM; | ||
79 | goto exit; | 80 | goto exit; |
81 | } | ||
80 | 82 | ||
81 | while (len > 0) { | 83 | while (len > 0) { |
82 | int translen = (len > 1024) ? 1024 : len; | 84 | int translen = (len > 1024) ? 1024 : len; |
@@ -98,10 +100,12 @@ static int zd1201_fw_upload(struct usb_device *dev, int apfw) | |||
98 | goto exit; | 100 | goto exit; |
99 | 101 | ||
100 | err = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), 0x4, | 102 | err = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), 0x4, |
101 | USB_DIR_IN | 0x40, 0,0, &ret, sizeof(ret), ZD1201_FW_TIMEOUT); | 103 | USB_DIR_IN | 0x40, 0, 0, buf, sizeof(ret), ZD1201_FW_TIMEOUT); |
102 | if (err < 0) | 104 | if (err < 0) |
103 | goto exit; | 105 | goto exit; |
104 | 106 | ||
107 | memcpy(&ret, buf, sizeof(ret)); | ||
108 | |||
105 | if (ret & 0x80) { | 109 | if (ret & 0x80) { |
106 | err = -EIO; | 110 | err = -EIO; |
107 | goto exit; | 111 | goto exit; |
@@ -1762,8 +1766,10 @@ static int zd1201_probe(struct usb_interface *interface, | |||
1762 | zd->endp_out2 = 2; | 1766 | zd->endp_out2 = 2; |
1763 | zd->rx_urb = usb_alloc_urb(0, GFP_KERNEL); | 1767 | zd->rx_urb = usb_alloc_urb(0, GFP_KERNEL); |
1764 | zd->tx_urb = usb_alloc_urb(0, GFP_KERNEL); | 1768 | zd->tx_urb = usb_alloc_urb(0, GFP_KERNEL); |
1765 | if (!zd->rx_urb || !zd->tx_urb) | 1769 | if (!zd->rx_urb || !zd->tx_urb) { |
1770 | err = -ENOMEM; | ||
1766 | goto err_zd; | 1771 | goto err_zd; |
1772 | } | ||
1767 | 1773 | ||
1768 | mdelay(100); | 1774 | mdelay(100); |
1769 | err = zd1201_drvr_start(zd); | 1775 | err = zd1201_drvr_start(zd); |