|
@@ -261,9 +261,12 @@ void led_trigger_register_simple(const char *name, struct led_trigger **tp)
|
|
if (trigger) {
|
|
if (trigger) {
|
|
trigger->name = name;
|
|
trigger->name = name;
|
|
err = led_trigger_register(trigger);
|
|
err = led_trigger_register(trigger);
|
|
- if (err < 0)
|
|
|
|
|
|
+ if (err < 0) {
|
|
|
|
+ kfree(trigger);
|
|
|
|
+ trigger = NULL;
|
|
printk(KERN_WARNING "LED trigger %s failed to register"
|
|
printk(KERN_WARNING "LED trigger %s failed to register"
|
|
" (%d)\n", name, err);
|
|
" (%d)\n", name, err);
|
|
|
|
+ }
|
|
} else
|
|
} else
|
|
printk(KERN_WARNING "LED trigger %s failed to register"
|
|
printk(KERN_WARNING "LED trigger %s failed to register"
|
|
" (no memory)\n", name);
|
|
" (no memory)\n", name);
|