Skip to content

Commit 2294ca7

Browse files
committed
Merge branch 'smsc95xx-fix-smsc95xx_bind'
Andre Edich says: ==================== smsc95xx: fix smsc95xx_bind The patchset fixes two problems in the function smsc95xx_bind: - return of false success - memory leak Changes in v2: - added "Fixes" tags to both patches ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 9dc829a + 3ed58f9 commit 2294ca7

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

drivers/net/usb/smsc95xx.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1287,11 +1287,14 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
12871287

12881288
/* Init all registers */
12891289
ret = smsc95xx_reset(dev);
1290+
if (ret)
1291+
goto free_pdata;
12901292

12911293
/* detect device revision as different features may be available */
12921294
ret = smsc95xx_read_reg(dev, ID_REV, &val);
12931295
if (ret < 0)
1294-
return ret;
1296+
goto free_pdata;
1297+
12951298
val >>= 16;
12961299
pdata->chip_id = val;
12971300
pdata->mdix_ctrl = get_mdix_status(dev->net);
@@ -1317,6 +1320,10 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
13171320
schedule_delayed_work(&pdata->carrier_check, CARRIER_CHECK_DELAY);
13181321

13191322
return 0;
1323+
1324+
free_pdata:
1325+
kfree(pdata);
1326+
return ret;
13201327
}
13211328

13221329
static void smsc95xx_unbind(struct usbnet *dev, struct usb_interface *intf)

0 commit comments

Comments
 (0)