In led_trigger_remove(), check if there is a trigger
configured before calling led_trigger_set(). This will
prevent some unnecessary work, and more importantly stop
sending uevent change events when no change has in fact
occurred.

Signed-off-by: Daniel Romell <d...@hms.se>
---
 drivers/leds/led-triggers.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index 59d6a3e..28c7a66 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -147,7 +147,8 @@ EXPORT_SYMBOL_GPL(led_trigger_set);
 void led_trigger_remove(struct led_classdev *led_cdev)
 {
        down_write(&led_cdev->trigger_lock);
-       led_trigger_set(led_cdev, NULL);
+       if (led_cdev->trigger)
+               led_trigger_set(led_cdev, NULL);
        up_write(&led_cdev->trigger_lock);
 }
 EXPORT_SYMBOL_GPL(led_trigger_remove);
-- 
2.7.4

Reply via email to