summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorThadeu Lima de Souza Cascardo <cascardo@igalia.com>2025-01-23 09:32:49 -0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-03-13 13:08:05 +0100
commit9960c408b8c5df0f1936b599f070c5b355eb60a2 (patch)
tree4dc838436635fe8d993f030966bc3482eb264dc5 /drivers
parented09318c13b43c91e2c0f8e0d509ff852616b2ba (diff)
downloadlinux-9960c408b8c5df0f1936b599f070c5b355eb60a2.tar.gz
linux-9960c408b8c5df0f1936b599f070c5b355eb60a2.tar.bz2
linux-9960c408b8c5df0f1936b599f070c5b355eb60a2.zip
char: misc: deallocate static minor in error path
commit 6d991f569c5ef6eaeadf1238df2c36e3975233ad upstream. When creating sysfs files fail, the allocated minor must be freed such that it can be later reused. That is specially harmful for static minor numbers, since those would always fail to register later on. Fixes: 6d04d2b554b1 ("misc: misc_minor_alloc to use ida for all dynamic/misc dynamic minors") Cc: stable <stable@kernel.org> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com> Link: https://lore.kernel.org/r/20250123123249.4081674-5-cascardo@igalia.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/misc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/misc.c b/drivers/char/misc.c
index 2cf595d2e10b..f7dd455dd0dd 100644
--- a/drivers/char/misc.c
+++ b/drivers/char/misc.c
@@ -264,8 +264,8 @@ int misc_register(struct miscdevice *misc)
device_create_with_groups(&misc_class, misc->parent, dev,
misc, misc->groups, "%s", misc->name);
if (IS_ERR(misc->this_device)) {
+ misc_minor_free(misc->minor);
if (is_dynamic) {
- misc_minor_free(misc->minor);
misc->minor = MISC_DYNAMIC_MINOR;
}
err = PTR_ERR(misc->this_device);