Skip to content

Commit 09472ce

Browse files
jhovoldWolfram Sang
authored andcommitted
i2c: tiny-usb: drop redundant device reference
Driver core holds a reference to the USB interface and its parent USB device while the interface is bound to a driver and there is no need to take additional references unless the structures are needed after disconnect. Drop the redundant device reference to reduce cargo culting, make it easier to spot drivers where an extra reference is needed, and reduce the risk of memory leaks when drivers fail to release it. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
1 parent 32dbfb4 commit 09472ce

1 file changed

Lines changed: 3 additions & 10 deletions

File tree

drivers/i2c/busses/i2c-tiny-usb.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,6 @@ static int usb_write(struct i2c_adapter *adapter, int cmd,
213213
return ret;
214214
}
215215

216-
static void i2c_tiny_usb_free(struct i2c_tiny_usb *dev)
217-
{
218-
usb_put_dev(dev->usb_dev);
219-
kfree(dev);
220-
}
221-
222216
static int i2c_tiny_usb_probe(struct usb_interface *interface,
223217
const struct usb_device_id *id)
224218
{
@@ -237,7 +231,7 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface,
237231
if (!dev)
238232
goto error;
239233

240-
dev->usb_dev = usb_get_dev(interface_to_usbdev(interface));
234+
dev->usb_dev = interface_to_usbdev(interface);
241235
dev->interface = interface;
242236

243237
/* save our data pointer in this interface device */
@@ -277,8 +271,7 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface,
277271
return 0;
278272

279273
error:
280-
if (dev)
281-
i2c_tiny_usb_free(dev);
274+
kfree(dev);
282275

283276
return retval;
284277
}
@@ -289,7 +282,7 @@ static void i2c_tiny_usb_disconnect(struct usb_interface *interface)
289282

290283
i2c_del_adapter(&dev->adapter);
291284
usb_set_intfdata(interface, NULL);
292-
i2c_tiny_usb_free(dev);
285+
kfree(dev);
293286

294287
dev_dbg(&interface->dev, "disconnected\n");
295288
}

0 commit comments

Comments
 (0)