summaryrefslogtreecommitdiff
path: root/drivers/most
diff options
context:
space:
mode:
authorVictoria Votokina <Victoria.Votokina@kaspersky.com>2025-10-10 13:52:41 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-10-29 14:09:01 +0100
commit7d851f746067b8ee5bac9c262f326ace0a6ea253 (patch)
tree743b82d2789a033af9fded049e9d7235fe9b016e /drivers/most
parentf93a84ffb884d761a9d4e869ba29c238711e81f1 (diff)
downloadlinux-7d851f746067b8ee5bac9c262f326ace0a6ea253.tar.gz
linux-7d851f746067b8ee5bac9c262f326ace0a6ea253.tar.bz2
linux-7d851f746067b8ee5bac9c262f326ace0a6ea253.zip
most: usb: hdm_probe: Fix calling put_device() before device initialization
commit a8cc9e5fcb0e2eef21513a4fec888f5712cb8162 upstream. The early error path in hdm_probe() can jump to err_free_mdev before &mdev->dev has been initialized with device_initialize(). Calling put_device(&mdev->dev) there triggers a device core WARN and ends up invoking kref_put(&kobj->kref, kobject_release) on an uninitialized kobject. In this path the private struct was only kmalloc'ed and the intended release is effectively kfree(mdev) anyway, so free it directly instead of calling put_device() on an uninitialized device. This removes the WARNING and fixes the pre-initialization error path. Fixes: 97a6f772f36b ("drivers: most: add USB adapter driver") Cc: stable <stable@kernel.org> Signed-off-by: Victoria Votokina <Victoria.Votokina@kaspersky.com> Link: https://patch.msgid.link/20251010105241.4087114-3-Victoria.Votokina@kaspersky.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/most')
-rw-r--r--drivers/most/most_usb.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/most/most_usb.c b/drivers/most/most_usb.c
index cafe36145f1c..988e33f27970 100644
--- a/drivers/most/most_usb.c
+++ b/drivers/most/most_usb.c
@@ -1097,7 +1097,7 @@ err_free_cap:
err_free_conf:
kfree(mdev->conf);
err_free_mdev:
- put_device(&mdev->dev);
+ kfree(mdev);
return ret;
}