Commit 2fd5a154 authored by Dmitry Torokhov's avatar Dmitry Torokhov Committed by Richard Purdie
Browse files

backlight: Fix error handling



Fix error handling when registering new device

Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
parent 7a208463
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -240,13 +240,16 @@ struct backlight_device *backlight_device_register(const char *name,


	rc = class_device_register(&new_bd->class_dev);
	rc = class_device_register(&new_bd->class_dev);
	if (unlikely(rc)) {
	if (unlikely(rc)) {
error:		kfree(new_bd);
		kfree(new_bd);
		return ERR_PTR(rc);
		return ERR_PTR(rc);
	}
	}


	rc = backlight_register_fb(new_bd);
	rc = backlight_register_fb(new_bd);
	if (unlikely(rc))
	if (rc) {
		goto error;
		class_device_unregister(&new_bd->class_dev);
		return ERR_PTR(rc);
	}



	for (i = 0; i < ARRAY_SIZE(bl_class_device_attributes); i++) {
	for (i = 0; i < ARRAY_SIZE(bl_class_device_attributes); i++) {
		rc = class_device_create_file(&new_bd->class_dev,
		rc = class_device_create_file(&new_bd->class_dev,
+5 −4
Original line number Original line Diff line number Diff line
@@ -206,14 +206,15 @@ struct lcd_device *lcd_device_register(const char *name, void *devdata,


	rc = class_device_register(&new_ld->class_dev);
	rc = class_device_register(&new_ld->class_dev);
	if (unlikely(rc)) {
	if (unlikely(rc)) {
error:		kfree(new_ld);
		kfree(new_ld);
		return ERR_PTR(rc);
		return ERR_PTR(rc);
	}
	}


	rc = lcd_register_fb(new_ld);
	rc = lcd_register_fb(new_ld);

	if (rc) {
	if (unlikely(rc))
		class_device_unregister(&new_ld->class_dev);
		goto error;
		return ERR_PTR(rc);
	}


	for (i = 0; i < ARRAY_SIZE(lcd_class_device_attributes); i++) {
	for (i = 0; i < ARRAY_SIZE(lcd_class_device_attributes); i++) {
		rc = class_device_create_file(&new_ld->class_dev,
		rc = class_device_create_file(&new_ld->class_dev,