summaryrefslogtreecommitdiffstats
path: root/rust
diff options
context:
space:
mode:
authorGuilherme G. Piccoli <gpiccoli@igalia.com>2023-12-05 22:15:51 +0100
committerJiri Kosina <jkosina@suse.com>2023-12-18 20:46:28 +0100
commit6eb04ca8c52e3f8c8ea7102ade81d642eee87f4a (patch)
tree1e6a1b0f76869bd9f2d556a5316dc311c571b192 /rust
parentHID: nintendo: fix initializer element is not constant error (diff)
downloadlinux-6eb04ca8c52e3f8c8ea7102ade81d642eee87f4a.tar.xz
linux-6eb04ca8c52e3f8c8ea7102ade81d642eee87f4a.zip
HID: nintendo: Prevent divide-by-zero on code
It was reported [0] that adding a generic joycon to the system caused a kernel crash on Steam Deck, with the below panic spew: divide error: 0000 [#1] PREEMPT SMP NOPTI [...] Hardware name: Valve Jupiter/Jupiter, BIOS F7A0119 10/24/2023 RIP: 0010:nintendo_hid_event+0x340/0xcc1 [hid_nintendo] [...] Call Trace: [...] ? exc_divide_error+0x38/0x50 ? nintendo_hid_event+0x340/0xcc1 [hid_nintendo] ? asm_exc_divide_error+0x1a/0x20 ? nintendo_hid_event+0x307/0xcc1 [hid_nintendo] hid_input_report+0x143/0x160 hidp_session_run+0x1ce/0x700 [hidp] Since it's a divide-by-0 error, by tracking the code for potential denominator issues, we've spotted 2 places in which this could happen; so let's guard against the possibility and log in the kernel if the condition happens. This is specially useful since some data that fills some denominators are read from the joycon HW in some cases, increasing the potential for flaws. [0] https://github.com/ValveSoftware/SteamOS/issues/1070 Signed-off-by: Guilherme G. Piccoli <gpiccoli@igalia.com> Tested-by: Sam Lantinga <slouken@libsdl.org> Signed-off-by: Jiri Kosina <jkosina@suse.com>
Diffstat (limited to 'rust')
0 files changed, 0 insertions, 0 deletions