diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-04-28 12:17:46 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-04-28 12:17:46 +0200 |
commit | 985526ed455a72d7bfba300899a6c23eb816e031 (patch) | |
tree | d1c6a615c5f9235a948b8cc773d09aebb1013878 /0001-misc-convert-to-guards.patch | |
parent | 2889759315c1a7a867496fd5cd642c8678917171 (diff) | |
download | patches-985526ed455a72d7bfba300899a6c23eb816e031.tar.gz |
updates and refresh
Diffstat (limited to '0001-misc-convert-to-guards.patch')
-rw-r--r-- | 0001-misc-convert-to-guards.patch | 88 |
1 files changed, 25 insertions, 63 deletions
diff --git a/0001-misc-convert-to-guards.patch b/0001-misc-convert-to-guards.patch index be8763cca4551d..a5ca0804a9aaca 100644 --- a/0001-misc-convert-to-guards.patch +++ b/0001-misc-convert-to-guards.patch @@ -4,14 +4,12 @@ Date: Mon, 12 Jun 2023 17:34:02 +0200 Subject: [PATCH] misc: convert to guards --- - drivers/char/misc.c | 69 +++++++++++++++++---------------------------- - 1 file changed, 26 insertions(+), 43 deletions(-) + drivers/char/misc.c | 44 +++++++++++++++----------------------------- + 1 file changed, 15 insertions(+), 29 deletions(-) -diff --git a/drivers/char/misc.c b/drivers/char/misc.c -index 1c44c29a666e..9b0418a3dc0d 100644 --- a/drivers/char/misc.c +++ b/drivers/char/misc.c -@@ -123,10 +123,9 @@ static int misc_open(struct inode *inode, struct file *file) +@@ -137,10 +137,9 @@ static int misc_open(struct inode *inode { int minor = iminor(inode); struct miscdevice *c = NULL, *iter; @@ -23,7 +21,7 @@ index 1c44c29a666e..9b0418a3dc0d 100644 list_for_each_entry(iter, &misc_list, list) { if (iter->minor != minor) -@@ -149,7 +148,7 @@ static int misc_open(struct inode *inode, struct file *file) +@@ -163,7 +162,7 @@ static int misc_open(struct inode *inode break; } if (!new_fops) @@ -32,7 +30,7 @@ index 1c44c29a666e..9b0418a3dc0d 100644 } /* -@@ -159,13 +158,11 @@ static int misc_open(struct inode *inode, struct file *file) +@@ -173,13 +172,11 @@ static int misc_open(struct inode *inode */ file->private_data = c; @@ -48,8 +46,8 @@ index 1c44c29a666e..9b0418a3dc0d 100644 + return 0; } - static struct class *misc_class; -@@ -197,29 +194,24 @@ static const struct file_operations misc_fops = { + static char *misc_devnode(const struct device *dev, umode_t *mode) +@@ -225,37 +222,30 @@ static const struct file_operations misc int misc_register(struct miscdevice *misc) { dev_t dev; @@ -62,17 +60,18 @@ index 1c44c29a666e..9b0418a3dc0d 100644 + guard(mutex)(&misc_mtx); if (is_dynamic) { - int i = misc_minor_alloc(); + int i = misc_minor_alloc(misc->minor); ++ if (i < 0) ++ return -EBUSY; - if (i < 0) { - err = -EBUSY; - goto out; - } -+ if (i < 0) -+ return -EBUSY; misc->minor = i; } else { struct miscdevice *c; + int i; list_for_each_entry(c, &misc_list, list) { - if (c->minor == misc->minor) { @@ -82,10 +81,19 @@ index 1c44c29a666e..9b0418a3dc0d 100644 + if (c->minor == misc->minor) + return -EBUSY; } + + i = misc_minor_alloc(misc->minor); +- if (i < 0) { +- err = -EBUSY; +- goto out; +- } ++ if (i < 0) ++ return -EBUSY; } -@@ -233,8 +225,7 @@ int misc_register(struct miscdevice *misc) - misc_minor_free(misc->minor); + dev = MKDEV(MISC_MAJOR, misc->minor); +@@ -268,8 +258,7 @@ int misc_register(struct miscdevice *mis + if (is_dynamic) { misc->minor = MISC_DYNAMIC_MINOR; } - err = PTR_ERR(misc->this_device); @@ -94,7 +102,7 @@ index 1c44c29a666e..9b0418a3dc0d 100644 } /* -@@ -242,9 +233,7 @@ int misc_register(struct miscdevice *misc) +@@ -277,9 +266,7 @@ int misc_register(struct miscdevice *mis * earlier defaults */ list_add(&misc->list, &misc_list); @@ -105,62 +113,16 @@ index 1c44c29a666e..9b0418a3dc0d 100644 } EXPORT_SYMBOL(misc_register); -@@ -261,11 +250,10 @@ void misc_deregister(struct miscdevice *misc) +@@ -296,11 +283,10 @@ void misc_deregister(struct miscdevice * if (WARN_ON(list_empty(&misc->list))) return; - mutex_lock(&misc_mtx); + guard(mutex)(&misc_mtx); list_del(&misc->list); - device_destroy(misc_class, MKDEV(MISC_MAJOR, misc->minor)); + device_destroy(&misc_class, MKDEV(MISC_MAJOR, misc->minor)); misc_minor_free(misc->minor); - mutex_unlock(&misc_mtx); } EXPORT_SYMBOL(misc_deregister); -@@ -280,29 +268,24 @@ static char *misc_devnode(const struct device *dev, umode_t *mode) - return NULL; - } - -+DEFINE_FREE(class_destroy, struct class *, if (_T) class_destroy(_T)); -+DEFINE_FREE(remove_misc_proc, struct proc_dir_entry *, if (_T) remove_proc_entry("misc", NULL)); - static int __init misc_init(void) - { -- int err; -- struct proc_dir_entry *ret; -+ struct proc_dir_entry *ret __free(remove_misc_proc) = proc_create_seq("misc", 0, NULL, &misc_seq_ops); -+ struct class *c __free(class_destroy) = class_create("misc"); - -- ret = proc_create_seq("misc", 0, NULL, &misc_seq_ops); -- misc_class = class_create("misc"); -- err = PTR_ERR(misc_class); -- if (IS_ERR(misc_class)) -- goto fail_remove; -+ if (IS_ERR(c)) -+ return PTR_ERR(c); - -- err = -EIO; - if (register_chrdev(MISC_MAJOR, "misc", &misc_fops)) -- goto fail_printk; -- misc_class->devnode = misc_devnode; -- return 0; -+ return -EIO; - --fail_printk: -- pr_err("unable to get major %d for misc devices\n", MISC_MAJOR); -- class_destroy(misc_class); --fail_remove: -- if (ret) -- remove_proc_entry("misc", NULL); -- return err; -+ c->devnode = misc_devnode; -+ -+ misc_class = no_free_ptr(c); -+ no_free_ptr(ret); -+ -+ return 0; - } - subsys_initcall(misc_init); --- -2.44.0 - |