diff options
author | Devendra Naga <develkernel412222@gmail.com> | 2012-07-15 09:22:02 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-17 13:27:38 -0400 |
commit | 8397c76a2c209997c7119bede2f26e51d8c786bc (patch) | |
tree | 25193b6ceac253bae795d86d55a331775674d7d7 /drivers/char | |
parent | 483136ea0e2b23f2aebf57e1a36a06dec4223a92 (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.c | 6 |
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 | } |