char: misc: deallocate static minor in error path

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>

authored by Thadeu Lima de Souza Cascardo and committed by Greg Kroah-Hartman 6d991f56 038ef075

+1 -1
+1 -1
drivers/char/misc.c
··· 264 264 device_create_with_groups(&misc_class, misc->parent, dev, 265 265 misc, misc->groups, "%s", misc->name); 266 266 if (IS_ERR(misc->this_device)) { 267 + misc_minor_free(misc->minor); 267 268 if (is_dynamic) { 268 - misc_minor_free(misc->minor); 269 269 misc->minor = MISC_DYNAMIC_MINOR; 270 270 } 271 271 err = PTR_ERR(misc->this_device);