On Sun, 7 Apr 2024, Hans de Goede wrote: > On 4/6/24 8:57 PM, Armin Wolf wrote: > > Am 27.03.24 um 22:45 schrieb Armin Wolf: > > > >> Since commit e2ffcda16290 ("ACPI: OSL: Allow Notify () handlers to run > >> on all CPUs"), the ACPI core allows multiple notify calls to be active > >> at the same time. This means that two instances of quickstart_notify() > >> running at the same time can mess which each others input sequences. > >> > >> Fix this by protecting the input sequence with a mutex. > >> > >> Compile-tested only. > > > > Any thoughts on this? > > I wonder if we need this at all ? > > The input_event() / input_report_key() / input_sync() functions > which underpin sparse_keymap_report_event() all are safe to be called > from multiple threads at the same time AFAIK. > > The only thing which can then still go "wrong" if we have > 2 sparse_keymap_report_event() functions racing for the same > quickstart button and thus for the same keycode is that we may > end up with: > > input_report_key(dev, keycode, 1); > input_report_key(dev, keycode, 1); /* This is a no-op */ > input_sync(); /* + another input_sync() somewhere which is a no-op */ > input_report_key(dev, keycode, 0); > input_report_key(dev, keycode, 0); /* This is a no-op */ > input_sync(); /* + another input_sync() somewhere which is a no-op */ > > IOW if 2 racing notifiers hit the perfect race conditions then > only 1 key press is reported, instead of 2 which seems like > it is not a problem since arguably if the same event gets > reported twice at the exact same time it probably really > is only a single button press. > > Also I think it is highly unlikely we will actually see > 2 notifiers for this racing in practice. > > So I don't think we need this at all. But if others feel strongly > about adding this I can still merge it... ? Hi, I know you already merged this and I agree it's not very likely race but still it can turn two presses into one which seems unwanted side-effect, even if it's unlikely to occur in practice. -- i.