Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'nfc-drop-redundant-usb-device-references'

Johan Hovold says:

====================
nfc: drop redundant USB device references

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 redundant device references 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 them.
====================

Link: https://patch.msgid.link/20260305111019.18030-1-johan@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+2 -6
+1 -3
drivers/nfc/pn533/usb.c
··· 500 500 if (!in_buf) 501 501 return -ENOMEM; 502 502 503 - phy->udev = usb_get_dev(interface_to_usbdev(interface)); 503 + phy->udev = interface_to_usbdev(interface); 504 504 phy->interface = interface; 505 505 506 506 iface_desc = interface->cur_altsetting; ··· 600 600 usb_free_urb(phy->in_urb); 601 601 usb_free_urb(phy->out_urb); 602 602 usb_free_urb(phy->ack_urb); 603 - usb_put_dev(phy->udev); 604 603 kfree(in_buf); 605 604 kfree(phy->ack_buffer); 606 605 ··· 627 628 usb_free_urb(phy->out_urb); 628 629 usb_free_urb(phy->ack_urb); 629 630 kfree(phy->ack_buffer); 630 - usb_put_dev(phy->udev); 631 631 632 632 nfc_info(&interface->dev, "NXP PN533 NFC device disconnected\n"); 633 633 }
+1 -3
drivers/nfc/port100.c
··· 1504 1504 return -ENOMEM; 1505 1505 1506 1506 mutex_init(&dev->out_urb_lock); 1507 - dev->udev = usb_get_dev(interface_to_usbdev(interface)); 1507 + dev->udev = interface_to_usbdev(interface); 1508 1508 dev->interface = interface; 1509 1509 usb_set_intfdata(interface, dev); 1510 1510 ··· 1616 1616 usb_free_urb(dev->in_urb); 1617 1617 usb_kill_urb(dev->out_urb); 1618 1618 usb_free_urb(dev->out_urb); 1619 - usb_put_dev(dev->udev); 1620 1619 1621 1620 return rc; 1622 1621 } ··· 1635 1636 1636 1637 usb_free_urb(dev->in_urb); 1637 1638 usb_free_urb(dev->out_urb); 1638 - usb_put_dev(dev->udev); 1639 1639 1640 1640 kfree(dev->cmd); 1641 1641