On Thu, Mar 13, 2025 at 03:55:28PM +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: 8ed633b9baf9 ("Revert "net-sysfs: Fix memory leak in netdev_register_kobject"") > Signed-off-by: Ma Ke <make24@xxxxxxxxxxx> > --- > net/core/net-sysfs.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c > index 07cb99b114bd..f443eacc9237 100644 > --- a/net/core/net-sysfs.c > +++ b/net/core/net-sysfs.c > @@ -2169,6 +2169,7 @@ int netdev_register_kobject(struct net_device *ndev) > > error = device_add(dev); > if (error) > + put_device(dev); > return error; You obviously did not test this :( Please be more careful in the future.