Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'hid-for-linus-2025070502' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid

Pull HID fixes from Jiri Kosina:

- Memory corruption fixes in hid-appletb-kbd driver (Qasim Ijaz)

- New device ID in hid-elecom driver (Leonard Dizon)

- Fixed several HID debugfs contants (Vicki Pfau)

* tag 'hid-for-linus-2025070502' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
HID: appletb-kbd: fix slab use-after-free bug in appletb_kbd_probe
HID: Fix debug name for BTN_GEAR_DOWN, BTN_GEAR_UP, BTN_WHEEL
HID: elecom: add support for ELECOM HUGE 019B variant
HID: appletb-kbd: fix memory corruption of input_handler_list

+19 -11
+9 -5
drivers/hid/hid-appletb-kbd.c
··· 430 430 ret = appletb_kbd_set_mode(kbd, appletb_tb_def_mode); 431 431 if (ret) { 432 432 dev_err_probe(dev, ret, "Failed to set touchbar mode\n"); 433 - goto close_hw; 433 + goto unregister_handler; 434 434 } 435 435 436 436 hid_set_drvdata(hdev, kbd); 437 437 438 438 return 0; 439 439 440 + unregister_handler: 441 + input_unregister_handler(&kbd->inp_handler); 440 442 close_hw: 441 - if (kbd->backlight_dev) 443 + if (kbd->backlight_dev) { 442 444 put_device(&kbd->backlight_dev->dev); 445 + timer_delete_sync(&kbd->inactivity_timer); 446 + } 443 447 hid_hw_close(hdev); 444 448 stop_hw: 445 449 hid_hw_stop(hdev); ··· 457 453 appletb_kbd_set_mode(kbd, APPLETB_KBD_MODE_OFF); 458 454 459 455 input_unregister_handler(&kbd->inp_handler); 460 - timer_delete_sync(&kbd->inactivity_timer); 461 - 462 - if (kbd->backlight_dev) 456 + if (kbd->backlight_dev) { 463 457 put_device(&kbd->backlight_dev->dev); 458 + timer_delete_sync(&kbd->inactivity_timer); 459 + } 464 460 465 461 hid_hw_close(hdev); 466 462 hid_hw_stop(hdev);
+2 -2
drivers/hid/hid-debug.c
··· 3298 3298 [BTN_TOUCH] = "Touch", [BTN_STYLUS] = "Stylus", 3299 3299 [BTN_STYLUS2] = "Stylus2", [BTN_TOOL_DOUBLETAP] = "ToolDoubleTap", 3300 3300 [BTN_TOOL_TRIPLETAP] = "ToolTripleTap", [BTN_TOOL_QUADTAP] = "ToolQuadrupleTap", 3301 - [BTN_GEAR_DOWN] = "WheelBtn", 3302 - [BTN_GEAR_UP] = "Gear up", [KEY_OK] = "Ok", 3301 + [BTN_GEAR_DOWN] = "BtnGearDown", [BTN_GEAR_UP] = "BtnGearUp", 3302 + [BTN_WHEEL] = "BtnWheel", [KEY_OK] = "Ok", 3303 3303 [KEY_SELECT] = "Select", [KEY_GOTO] = "Goto", 3304 3304 [KEY_CLEAR] = "Clear", [KEY_POWER2] = "Power2", 3305 3305 [KEY_OPTION] = "Option", [KEY_INFO] = "Info",
+4 -2
drivers/hid/hid-elecom.c
··· 89 89 break; 90 90 case USB_DEVICE_ID_ELECOM_M_DT1URBK: 91 91 case USB_DEVICE_ID_ELECOM_M_DT1DRBK: 92 - case USB_DEVICE_ID_ELECOM_M_HT1URBK: 92 + case USB_DEVICE_ID_ELECOM_M_HT1URBK_010C: 93 + case USB_DEVICE_ID_ELECOM_M_HT1URBK_019B: 93 94 case USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D: 94 95 /* 95 96 * Report descriptor format: ··· 123 122 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT4DRBK) }, 124 123 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1URBK) }, 125 124 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1DRBK) }, 126 - { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK) }, 125 + { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK_010C) }, 126 + { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK_019B) }, 127 127 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D) }, 128 128 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1DRBK_011C) }, 129 129 { }
+2 -1
drivers/hid/hid-ids.h
··· 448 448 #define USB_DEVICE_ID_ELECOM_M_XT4DRBK 0x00fd 449 449 #define USB_DEVICE_ID_ELECOM_M_DT1URBK 0x00fe 450 450 #define USB_DEVICE_ID_ELECOM_M_DT1DRBK 0x00ff 451 - #define USB_DEVICE_ID_ELECOM_M_HT1URBK 0x010c 451 + #define USB_DEVICE_ID_ELECOM_M_HT1URBK_010C 0x010c 452 + #define USB_DEVICE_ID_ELECOM_M_HT1URBK_019B 0x019b 452 453 #define USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D 0x010d 453 454 #define USB_DEVICE_ID_ELECOM_M_HT1DRBK_011C 0x011c 454 455
+2 -1
drivers/hid/hid-quirks.c
··· 410 410 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT4DRBK) }, 411 411 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1URBK) }, 412 412 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1DRBK) }, 413 - { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK) }, 413 + { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK_010C) }, 414 + { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK_019B) }, 414 415 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D) }, 415 416 { HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1DRBK_011C) }, 416 417 #endif