{"id":"CVE-2025-38335","summary":"Input: gpio-keys - fix a sleep while atomic with PREEMPT_RT","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nInput: gpio-keys - fix a sleep while atomic with PREEMPT_RT\n\nWhen enabling PREEMPT_RT, the gpio_keys_irq_timer() callback runs in\nhard irq context, but the input_event() takes a spin_lock, which isn't\nallowed there as it is converted to a rt_spin_lock().\n\n[ 4054.289999] BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48\n[ 4054.290028] in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 0, name: swapper/0\n...\n[ 4054.290195]  __might_resched+0x13c/0x1f4\n[ 4054.290209]  rt_spin_lock+0x54/0x11c\n[ 4054.290219]  input_event+0x48/0x80\n[ 4054.290230]  gpio_keys_irq_timer+0x4c/0x78\n[ 4054.290243]  __hrtimer_run_queues+0x1a4/0x438\n[ 4054.290257]  hrtimer_interrupt+0xe4/0x240\n[ 4054.290269]  arch_timer_handler_phys+0x2c/0x44\n[ 4054.290283]  handle_percpu_devid_irq+0x8c/0x14c\n[ 4054.290297]  handle_irq_desc+0x40/0x58\n[ 4054.290307]  generic_handle_domain_irq+0x1c/0x28\n[ 4054.290316]  gic_handle_irq+0x44/0xcc\n\nConsidering the gpio_keys_irq_isr() can run in any context, e.g. it can\nbe threaded, it seems there's no point in requesting the timer isr to\nrun in hard irq context.\n\nRelax the hrtimer not to use the hard context.","modified":"2026-03-20T12:42:48.685780Z","published":"2025-07-10T08:15:07.063Z","related":["SUSE-SU-2025:02853-1","SUSE-SU-2025:02923-1","SUSE-SU-2025:02969-1","SUSE-SU-2025:02996-1","SUSE-SU-2025:02997-1","SUSE-SU-2025:03011-1","SUSE-SU-2025:03023-1","SUSE-SU-2025:20577-1","SUSE-SU-2025:20586-1","SUSE-SU-2025:20601-1","SUSE-SU-2025:20602-1","SUSE-SU-2025:21074-1","SUSE-SU-2025:21139-1","SUSE-SU-2025:21179-1","openSUSE-SU-2025:20081-1"],"database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38335.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/664e5a6f541ff226621487d1280d2ec28e86be28"},{"type":"WEB","url":"https://git.kernel.org/stable/c/a7b79db25846459de63ca8974268f0c41c734c4b"},{"type":"WEB","url":"https://git.kernel.org/stable/c/a8f01e51109f77229e426b57c5d19251b462c6aa"},{"type":"WEB","url":"https://git.kernel.org/stable/c/ec8f5da79b425deef5aebacdd4fe645620cd4f0b"},{"type":"WEB","url":"https://git.kernel.org/stable/c/f4a8f561d08e39f7833d4a278ebfb12a41eef15f"},{"type":"WEB","url":"https://git.kernel.org/stable/c/fa53beab4740c4e5fe969f218a379f9558be33dc"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38335.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-38335"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"019002f20cb5b9f78d39360aff244265d035e08a"},{"fixed":"664e5a6f541ff226621487d1280d2ec28e86be28"},{"fixed":"a8f01e51109f77229e426b57c5d19251b462c6aa"},{"fixed":"fa53beab4740c4e5fe969f218a379f9558be33dc"},{"fixed":"a7b79db25846459de63ca8974268f0c41c734c4b"},{"fixed":"ec8f5da79b425deef5aebacdd4fe645620cd4f0b"},{"fixed":"f4a8f561d08e39f7833d4a278ebfb12a41eef15f"}]}],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-38335.json"}}],"schema_version":"1.7.5"}