On Fri, 15 Mar 2019, Rodrigo Rivas Costa wrote: > When using this driver with the wireless dongle and some usermode > program that monitors every input device (acpid, for example), while > another usermode client opens and closes the low-level device > repeadedly, the system eventually deadlocks. > > The reason is that steam_input_register_device() must not be called with > the mutex held, because the input subsystem has its own synchronization > that clashes with this one: it is possible that steam_input_open() is > called before input_register_device() returns, and since > steam_input_open() needs to lock the mutex, it deadlocks. > > However we must hold the mutex when calling any function that sends > commands to the controller. If not, random commands end up falling fail. > > Reported-by: Simon Gene Gottlieb <simon@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Rodrigo Rivas Costa <rodrigorivascosta@xxxxxxxxx> > Tested-by: Simon Gene Gottlieb <simon@xxxxxxxxxxxxxxxxxxx> Applied to for-5.1/upstream-fixes, thanks. -- Jiri Kosina SUSE Labs