aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorDevendra Naga <develkernel412222@gmail.com>2012-07-15 09:22:02 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-17 13:27:38 -0400
commit8397c76a2c209997c7119bede2f26e51d8c786bc (patch)
tree25193b6ceac253bae795d86d55a331775674d7d7 /drivers/char
parent483136ea0e2b23f2aebf57e1a36a06dec4223a92 (diff)
powerpc/BSR: cleanup the error path of bsr_init
class_create if succeeded returns a pointer to the struct class, and if it fails, it returns a value enclosed by the pointer, which can be read by using PTR_ERR. Handle the error and return it. result is for error checking of the alloc_chrdev_region, instead ret can be used, and also if the alloc_chrdev_region fail, we are still returning -ENODEV, use ret and the error path will take care of returning of the ret. Signed-off-by: Devendra Naga <develkernel412222@gmail.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/bsr.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/char/bsr.c b/drivers/char/bsr.c
index 0c688232aab3..97467053a01b 100644
--- a/drivers/char/bsr.c
+++ b/drivers/char/bsr.c
@@ -297,7 +297,6 @@ static int __init bsr_init(void)
297 struct device_node *np; 297 struct device_node *np;
298 dev_t bsr_dev; 298 dev_t bsr_dev;
299 int ret = -ENODEV; 299 int ret = -ENODEV;
300 int result;
301 300
302 np = of_find_compatible_node(NULL, NULL, "ibm,bsr"); 301 np = of_find_compatible_node(NULL, NULL, "ibm,bsr");
303 if (!np) 302 if (!np)
@@ -306,13 +305,14 @@ static int __init bsr_init(void)
306 bsr_class = class_create(THIS_MODULE, "bsr"); 305 bsr_class = class_create(THIS_MODULE, "bsr");
307 if (IS_ERR(bsr_class)) { 306 if (IS_ERR(bsr_class)) {
308 printk(KERN_ERR "class_create() failed for bsr_class\n"); 307 printk(KERN_ERR "class_create() failed for bsr_class\n");
308 ret = PTR_ERR(bsr_class);
309 goto out_err_1; 309 goto out_err_1;
310 } 310 }
311 bsr_class->dev_attrs = bsr_dev_attrs; 311 bsr_class->dev_attrs = bsr_dev_attrs;
312 312
313 result = alloc_chrdev_region(&bsr_dev, 0, BSR_MAX_DEVS, "bsr"); 313 ret = alloc_chrdev_region(&bsr_dev, 0, BSR_MAX_DEVS, "bsr");
314 bsr_major = MAJOR(bsr_dev); 314 bsr_major = MAJOR(bsr_dev);
315 if (result < 0) { 315 if (ret < 0) {
316 printk(KERN_ERR "alloc_chrdev_region() failed for bsr\n"); 316 printk(KERN_ERR "alloc_chrdev_region() failed for bsr\n");
317 goto out_err_2; 317 goto out_err_2;
318 } 318 }