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

Commit fe3025b5 authored by Dmitry Eremin-Solenikov's avatar Dmitry Eremin-Solenikov Committed by Richard Purdie
Browse files

leds: Ensure led->trigger is set earlier



Make sure led->trigger is valid before calling trigger->activate

Signed-off-by: default avatarDmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
parent f46e9203
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -111,16 +111,17 @@ void led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trigger)
			flags);
		if (led_cdev->trigger->deactivate)
			led_cdev->trigger->deactivate(led_cdev);
		led_cdev->trigger = NULL;
		led_set_brightness(led_cdev, LED_OFF);
	}
	if (trigger) {
		write_lock_irqsave(&trigger->leddev_list_lock, flags);
		list_add_tail(&led_cdev->trig_list, &trigger->led_cdevs);
		write_unlock_irqrestore(&trigger->leddev_list_lock, flags);
		led_cdev->trigger = trigger;
		if (trigger->activate)
			trigger->activate(led_cdev);
	}
	led_cdev->trigger = trigger;
}
EXPORT_SYMBOL_GPL(led_trigger_set);