On Thu, Mar 13, 2025 at 04:31:35PM +0800, Ma Ke wrote: > Once device_add() failed, we should call put_device() to decrement > reference count for cleanup. Or it could cause memory leak. > > As comment of device_add() says, 'if device_add() succeeds, you should > call device_del() when you want to get rid of it. If device_add() has > not succeeded, use only put_device() to drop the reference count'. > > Found by code review. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 54506918059a ("Bluetooth: Move SMP initialization after HCI init") > Signed-off-by: Ma Ke <make24@xxxxxxxxxxx> > --- > net/bluetooth/hci_core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c > index e7ec12437c8b..c03fd16d3c46 100644 > --- a/net/bluetooth/hci_core.c > +++ b/net/bluetooth/hci_core.c > @@ -2641,6 +2641,7 @@ int hci_register_dev(struct hci_dev *hdev) > return id; > > err_wqueue: > + put_device(&hdev->dev); How was this tested?