On Fri, 4 Oct 2019, Will Deacon wrote:
Indeed, and I think the LED blinking is already unreliable if the brightness operation needs to sleep.
One thing is that led_set_brightness() can probably be forced to avoid the workqueue scheduling, by setting LED_BLINK_SW on the device (e.g. by issuing led_set_software_blink() during panic).
But I am afraid this still won't solve the issue completely, as USB keyboards need workqueues for blinking the LEDs in for URB management.