1. 20 May, 2024 1 commit
    • Dmitry Torokhov's avatar
      Input: try trimming too long modalias strings · 0774d190
      Dmitry Torokhov authored
      If an input device declares too many capability bits then modalias
      string for such device may become too long and not fit into uevent
      buffer, resulting in failure of sending said uevent. This, in turn,
      may prevent userspace from recognizing existence of such devices.
      
      This is typically not a concern for real hardware devices as they have
      limited number of keys, but happen with synthetic devices such as
      ones created by xen-kbdfront driver, which creates devices as being
      capable of delivering all possible keys, since it doesn't know what
      keys the backend may produce.
      
      To deal with such devices input core will attempt to trim key data,
      in the hope that the rest of modalias string will fit in the given
      buffer. When trimming key data it will indicate that it is not
      complete by placing "+," sign, resulting in conversions like this:
      
      old: k71,72,73,74,78,7A,7B,7C,7D,8E,9E,A4,AD,E0,E1,E4,F8,174,
      new: k71,72,73,74,78,7A,7B,7C,+,
      
      This should allow existing udev rules continue to work with existing
      devices, and will also allow writing more complex rules that would
      recognize trimmed modalias and check input device characteristics by
      other means (for example by parsing KEY= data in uevent or parsing
      input device sysfs attributes).
      
      Note that the driver core may try adding more uevent environment
      variables once input core is done adding its own, so when forming
      modalias we can not use the entire available buffer, so we reduce
      it by somewhat an arbitrary amount (96 bytes).
      Reported-by: default avatarJason Andryuk <jandryuk@gmail.com>
      Reviewed-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      Tested-by: default avatarJason Andryuk <jandryuk@gmail.com>
      Link: https://lore.kernel.org/r/ZjAWMQCJdrxZkvkB@google.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      0774d190
  2. 13 May, 2024 3 commits
  3. 06 May, 2024 6 commits
  4. 30 Apr, 2024 1 commit
  5. 25 Apr, 2024 1 commit
    • Marek Szyprowski's avatar
      Input: cyapa - add missing input core locking to suspend/resume functions · 7b4e0b39
      Marek Szyprowski authored
      Grab input->mutex during suspend/resume functions like it is done in
      other input drivers. This fixes the following warning during system
      suspend/resume cycle on Samsung Exynos5250-based Snow Chromebook:
      
      ------------[ cut here ]------------
      WARNING: CPU: 1 PID: 1680 at drivers/input/input.c:2291 input_device_enabled+0x68/0x6c
      Modules linked in: ...
      CPU: 1 PID: 1680 Comm: kworker/u4:12 Tainted: G        W          6.6.0-rc5-next-20231009 #14109
      Hardware name: Samsung Exynos (Flattened Device Tree)
      Workqueue: events_unbound async_run_entry_fn
       unwind_backtrace from show_stack+0x10/0x14
       show_stack from dump_stack_lvl+0x58/0x70
       dump_stack_lvl from __warn+0x1a8/0x1cc
       __warn from warn_slowpath_fmt+0x18c/0x1b4
       warn_slowpath_fmt from input_device_enabled+0x68/0x6c
       input_device_enabled from cyapa_gen3_set_power_mode+0x13c/0x1dc
       cyapa_gen3_set_power_mode from cyapa_reinitialize+0x10c/0x15c
       cyapa_reinitialize from cyapa_resume+0x48/0x98
       cyapa_resume from dpm_run_callback+0x90/0x298
       dpm_run_callback from device_resume+0xb4/0x258
       device_resume from async_resume+0x20/0x64
       async_resume from async_run_entry_fn+0x40/0x15c
       async_run_entry_fn from process_scheduled_works+0xbc/0x6a8
       process_scheduled_works from worker_thread+0x188/0x454
       worker_thread from kthread+0x108/0x140
       kthread from ret_from_fork+0x14/0x28
      Exception stack(0xf1625fb0 to 0xf1625ff8)
      ...
      ---[ end trace 0000000000000000 ]---
      ...
      ------------[ cut here ]------------
      WARNING: CPU: 1 PID: 1680 at drivers/input/input.c:2291 input_device_enabled+0x68/0x6c
      Modules linked in: ...
      CPU: 1 PID: 1680 Comm: kworker/u4:12 Tainted: G        W          6.6.0-rc5-next-20231009 #14109
      Hardware name: Samsung Exynos (Flattened Device Tree)
      Workqueue: events_unbound async_run_entry_fn
       unwind_backtrace from show_stack+0x10/0x14
       show_stack from dump_stack_lvl+0x58/0x70
       dump_stack_lvl from __warn+0x1a8/0x1cc
       __warn from warn_slowpath_fmt+0x18c/0x1b4
       warn_slowpath_fmt from input_device_enabled+0x68/0x6c
       input_device_enabled from cyapa_gen3_set_power_mode+0x13c/0x1dc
       cyapa_gen3_set_power_mode from cyapa_reinitialize+0x10c/0x15c
       cyapa_reinitialize from cyapa_resume+0x48/0x98
       cyapa_resume from dpm_run_callback+0x90/0x298
       dpm_run_callback from device_resume+0xb4/0x258
       device_resume from async_resume+0x20/0x64
       async_resume from async_run_entry_fn+0x40/0x15c
       async_run_entry_fn from process_scheduled_works+0xbc/0x6a8
       process_scheduled_works from worker_thread+0x188/0x454
       worker_thread from kthread+0x108/0x140
       kthread from ret_from_fork+0x14/0x28
      Exception stack(0xf1625fb0 to 0xf1625ff8)
      ...
      ---[ end trace 0000000000000000 ]---
      
      Fixes: d69f0a43 ("Input: use input_device_enabled()")
      Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: default avatarAndrzej Pietrasiewicz <andrzej.p@collabora.com>
      Link: https://lore.kernel.org/r/20231009121018.1075318-1-m.szyprowski@samsung.comSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      7b4e0b39
  6. 17 Apr, 2024 3 commits
  7. 15 Apr, 2024 2 commits
  8. 28 Mar, 2024 4 commits
  9. 15 Mar, 2024 2 commits
  10. 10 Mar, 2024 4 commits
  11. 09 Mar, 2024 1 commit
  12. 07 Mar, 2024 1 commit
  13. 05 Mar, 2024 1 commit
  14. 03 Mar, 2024 9 commits
  15. 09 Feb, 2024 1 commit