Skip to content

Commit a6dab2f

Browse files
Ma Kegregkh
authored andcommitted
mei: Fix error handling in mei_register
mei_register() fails to release the device reference in error paths after device_initialize(). During normal device registration, the reference is properly handled through mei_deregister() which calls device_destroy(). However, in error handling paths (such as cdev_alloc failure, cdev_add failure, etc.), missing put_device() calls cause reference count leaks, preventing the device's release function (mei_device_release) from being called and resulting in memory leaks of mei_device. Found by code review. Cc: stable <stable@kernel.org> Fixes: 7704e6b ("mei: hook mei_device on class device") Signed-off-by: Ma Ke <make24@iscas.ac.cn> Acked-by: Alexander Usyskin <alexander.usyskin@intel.com> Link: https://patch.msgid.link/20251104020133.5017-1-make24@iscas.ac.cn Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 5d92c3b commit a6dab2f

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

drivers/misc/mei/main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1307,6 +1307,7 @@ int mei_register(struct mei_device *dev, struct device *parent)
13071307
err_del_cdev:
13081308
cdev_del(dev->cdev);
13091309
err:
1310+
put_device(&dev->dev);
13101311
mei_minor_free(minor);
13111312
return ret;
13121313
}

0 commit comments

Comments
 (0)