Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8397c76a authored by Devendra Naga's avatar Devendra Naga Committed by Greg Kroah-Hartman
Browse files

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: default avatarDevendra Naga <develkernel412222@gmail.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 483136ea
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -297,7 +297,6 @@ static int __init bsr_init(void)
	struct device_node *np;
	dev_t bsr_dev;
	int ret = -ENODEV;
	int result;

	np = of_find_compatible_node(NULL, NULL, "ibm,bsr");
	if (!np)
@@ -306,13 +305,14 @@ static int __init bsr_init(void)
	bsr_class = class_create(THIS_MODULE, "bsr");
	if (IS_ERR(bsr_class)) {
		printk(KERN_ERR "class_create() failed for bsr_class\n");
		ret = PTR_ERR(bsr_class);
		goto out_err_1;
	}
	bsr_class->dev_attrs = bsr_dev_attrs;

	result = alloc_chrdev_region(&bsr_dev, 0, BSR_MAX_DEVS, "bsr");
	ret = alloc_chrdev_region(&bsr_dev, 0, BSR_MAX_DEVS, "bsr");
	bsr_major = MAJOR(bsr_dev);
	if (result < 0) {
	if (ret < 0) {
		printk(KERN_ERR "alloc_chrdev_region() failed for bsr\n");
		goto out_err_2;
	}