leds: trigger: panic: Simplify led_trigger_set_panic
authorHeiner Kallweit <hkallweit1@gmail.com>
Sat, 9 Dec 2023 22:54:51 +0000 (23:54 +0100)
committerLee Jones <lee@kernel.org>
Thu, 7 Mar 2024 08:48:01 +0000 (08:48 +0000)
I don't see why we iterate over all triggers to find the panic trigger.
We *are* the panic trigger. Therefore we also know that the panic
trigger doesn't have an activate() hook. So we can simplify the code
significantly.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Link: https://lore.kernel.org/r/84c0fa67-2f03-4474-aa75-914d65d88dd0@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/trigger/ledtrig-panic.c

index 5a6b21bfeb9af488959a54d7b3f71aff6b05dd71..1d49c10780910c8684b5a9dad4f38ca7c80ddad1 100644 (file)
@@ -21,24 +21,15 @@ static struct led_trigger *trigger;
  */
 static void led_trigger_set_panic(struct led_classdev *led_cdev)
 {
-       struct led_trigger *trig;
+       if (led_cdev->trigger)
+               list_del(&led_cdev->trig_list);
+       list_add_tail(&led_cdev->trig_list, &trigger->led_cdevs);
 
-       list_for_each_entry(trig, &trigger_list, next_trig) {
-               if (strcmp("panic", trig->name))
-                       continue;
-               if (led_cdev->trigger)
-                       list_del(&led_cdev->trig_list);
-               list_add_tail(&led_cdev->trig_list, &trig->led_cdevs);
+       /* Avoid the delayed blink path */
+       led_cdev->blink_delay_on = 0;
+       led_cdev->blink_delay_off = 0;
 
-               /* Avoid the delayed blink path */
-               led_cdev->blink_delay_on = 0;
-               led_cdev->blink_delay_off = 0;
-
-               led_cdev->trigger = trig;
-               if (trig->activate)
-                       trig->activate(led_cdev);
-               break;
-       }
+       led_cdev->trigger = trigger;
 }
 
 static int led_trigger_panic_notifier(struct notifier_block *nb,