Skip to contentSkip to conversation

3.17-rc1: leds blink workqueue causes sleeping BUGs

DISCUSSION Kari Suvanto 1 participant 1 message Sep 22, 2014 LED

lore
Share & tools
lore
#0 lore raw
Quoted 1 line

Ew. I'll have a look.

sorry, sending again, first one had html in it..

Any update on this one?

I'm seeing this in every boot. I patched this by changing led_trigger_register and led_trigger_register_simple as macros which creates a static lock_class_key like this:
-extern int led_trigger_register(struct led_trigger *trigger);
+
+extern int __led_trigger_register_key(struct led_trigger *trigger,
+ struct lock_class_key *key);
+#ifdef CONFIG_LOCKDEP

+#define led_trigger_register(trigger)                                  \
+({                                                                     \
+       static struct lock_class_key __key;                             \
+                                                                       \
+       __led_trigger_register_key(trigger, &__key);                    \

+})
+#else
+#define led_trigger_register(trigger) \
+ __led_trigger_register_key(trigger, NULL)
+#endif
+

But should every trigger has own key? With my patch all the triggers from vt/keyboard.c are using the same key. Is that a problem? I have not seen any problems with that patch and after that I can see this https://lkml.org/lkml/2014/9/5/462.

-Kari