From 38ae7185094a28879c8b97332f3f5eddad5225a4 Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Fri, 15 Jun 2018 13:01:53 +0200 Subject: [PATCH] usb_drv: wait for keyboard LED registry in 'led_connect()' It can happen that a keyboard gets plugged in and 'led_connect()' is called while the keyboard LED of another keyboard is just being updated (and the registry is locked). Fixes #2869 --- repos/dde_linux/src/lib/usb/input/evdev.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/repos/dde_linux/src/lib/usb/input/evdev.cc b/repos/dde_linux/src/lib/usb/input/evdev.cc index 98998f6290..7891f0c488 100644 --- a/repos/dde_linux/src/lib/usb/input/evdev.cc +++ b/repos/dde_linux/src/lib/usb/input/evdev.cc @@ -449,6 +449,8 @@ static Genode::Constructible _led; static int led_connect(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id) { + _led->wait_for_registry(); + Keyboard_led *keyboard = new (Lx_kit::env().heap()) Keyboard_led(_registry, dev); _led->update(*keyboard);