diff options
Diffstat (limited to 'drivers/leds/ledtrig-backlight.c')
-rw-r--r-- | drivers/leds/ledtrig-backlight.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/leds/ledtrig-backlight.c b/drivers/leds/ledtrig-backlight.c index 2b513a2ad7de..e2726867c5d4 100644 --- a/drivers/leds/ledtrig-backlight.c +++ b/drivers/leds/ledtrig-backlight.c | |||
@@ -120,6 +120,7 @@ static void bl_trig_activate(struct led_classdev *led) | |||
120 | ret = fb_register_client(&n->notifier); | 120 | ret = fb_register_client(&n->notifier); |
121 | if (ret) | 121 | if (ret) |
122 | dev_err(led->dev, "unable to register backlight trigger\n"); | 122 | dev_err(led->dev, "unable to register backlight trigger\n"); |
123 | led->activated = true; | ||
123 | 124 | ||
124 | return; | 125 | return; |
125 | 126 | ||
@@ -133,10 +134,11 @@ static void bl_trig_deactivate(struct led_classdev *led) | |||
133 | struct bl_trig_notifier *n = | 134 | struct bl_trig_notifier *n = |
134 | (struct bl_trig_notifier *) led->trigger_data; | 135 | (struct bl_trig_notifier *) led->trigger_data; |
135 | 136 | ||
136 | if (n) { | 137 | if (led->activated) { |
137 | device_remove_file(led->dev, &dev_attr_inverted); | 138 | device_remove_file(led->dev, &dev_attr_inverted); |
138 | fb_unregister_client(&n->notifier); | 139 | fb_unregister_client(&n->notifier); |
139 | kfree(n); | 140 | kfree(n); |
141 | led->activated = false; | ||
140 | } | 142 | } |
141 | } | 143 | } |
142 | 144 | ||