rfkill: fix led-trigger unregister order in error unwind
[pandora-kernel.git] / net / rfkill / rfkill.c
index 022fe50..fc3a4fd 100644 (file)
@@ -590,8 +590,10 @@ static void rfkill_led_trigger_register(struct rfkill *rfkill)
 static void rfkill_led_trigger_unregister(struct rfkill *rfkill)
 {
 #ifdef CONFIG_RFKILL_LEDS
-       if (rfkill->led_trigger.name)
+       if (rfkill->led_trigger.name) {
                led_trigger_unregister(&rfkill->led_trigger);
+               rfkill->led_trigger.name = NULL;
+       }
 #endif
 }
 
@@ -627,8 +629,8 @@ int rfkill_register(struct rfkill *rfkill)
 
        error = device_add(dev);
        if (error) {
-               rfkill_led_trigger_unregister(rfkill);
                rfkill_remove_switch(rfkill);
+               rfkill_led_trigger_unregister(rfkill);
                return error;
        }