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
This commit is contained in:
@@ -430,16 +430,20 @@ static int appletb_kbd_probe(struct hid_device *hdev, const struct hid_device_id
|
||||
ret = appletb_kbd_set_mode(kbd, appletb_tb_def_mode);
|
||||
if (ret) {
|
||||
dev_err_probe(dev, ret, "Failed to set touchbar mode\n");
|
||||
goto close_hw;
|
||||
goto unregister_handler;
|
||||
}
|
||||
|
||||
hid_set_drvdata(hdev, kbd);
|
||||
|
||||
return 0;
|
||||
|
||||
unregister_handler:
|
||||
input_unregister_handler(&kbd->inp_handler);
|
||||
close_hw:
|
||||
if (kbd->backlight_dev)
|
||||
if (kbd->backlight_dev) {
|
||||
put_device(&kbd->backlight_dev->dev);
|
||||
timer_delete_sync(&kbd->inactivity_timer);
|
||||
}
|
||||
hid_hw_close(hdev);
|
||||
stop_hw:
|
||||
hid_hw_stop(hdev);
|
||||
@@ -453,10 +457,10 @@ static void appletb_kbd_remove(struct hid_device *hdev)
|
||||
appletb_kbd_set_mode(kbd, APPLETB_KBD_MODE_OFF);
|
||||
|
||||
input_unregister_handler(&kbd->inp_handler);
|
||||
timer_delete_sync(&kbd->inactivity_timer);
|
||||
|
||||
if (kbd->backlight_dev)
|
||||
if (kbd->backlight_dev) {
|
||||
put_device(&kbd->backlight_dev->dev);
|
||||
timer_delete_sync(&kbd->inactivity_timer);
|
||||
}
|
||||
|
||||
hid_hw_close(hdev);
|
||||
hid_hw_stop(hdev);
|
||||
|
||||
@@ -3298,8 +3298,8 @@ static const char *keys[KEY_MAX + 1] = {
|
||||
[BTN_TOUCH] = "Touch", [BTN_STYLUS] = "Stylus",
|
||||
[BTN_STYLUS2] = "Stylus2", [BTN_TOOL_DOUBLETAP] = "ToolDoubleTap",
|
||||
[BTN_TOOL_TRIPLETAP] = "ToolTripleTap", [BTN_TOOL_QUADTAP] = "ToolQuadrupleTap",
|
||||
[BTN_GEAR_DOWN] = "WheelBtn",
|
||||
[BTN_GEAR_UP] = "Gear up", [KEY_OK] = "Ok",
|
||||
[BTN_GEAR_DOWN] = "BtnGearDown", [BTN_GEAR_UP] = "BtnGearUp",
|
||||
[BTN_WHEEL] = "BtnWheel", [KEY_OK] = "Ok",
|
||||
[KEY_SELECT] = "Select", [KEY_GOTO] = "Goto",
|
||||
[KEY_CLEAR] = "Clear", [KEY_POWER2] = "Power2",
|
||||
[KEY_OPTION] = "Option", [KEY_INFO] = "Info",
|
||||
|
||||
@@ -89,7 +89,8 @@ static const __u8 *elecom_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
break;
|
||||
case USB_DEVICE_ID_ELECOM_M_DT1URBK:
|
||||
case USB_DEVICE_ID_ELECOM_M_DT1DRBK:
|
||||
case USB_DEVICE_ID_ELECOM_M_HT1URBK:
|
||||
case USB_DEVICE_ID_ELECOM_M_HT1URBK_010C:
|
||||
case USB_DEVICE_ID_ELECOM_M_HT1URBK_019B:
|
||||
case USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D:
|
||||
/*
|
||||
* Report descriptor format:
|
||||
@@ -122,7 +123,8 @@ static const struct hid_device_id elecom_devices[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT4DRBK) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1URBK) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1DRBK) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK_010C) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK_019B) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1DRBK_011C) },
|
||||
{ }
|
||||
|
||||
@@ -448,7 +448,8 @@
|
||||
#define USB_DEVICE_ID_ELECOM_M_XT4DRBK 0x00fd
|
||||
#define USB_DEVICE_ID_ELECOM_M_DT1URBK 0x00fe
|
||||
#define USB_DEVICE_ID_ELECOM_M_DT1DRBK 0x00ff
|
||||
#define USB_DEVICE_ID_ELECOM_M_HT1URBK 0x010c
|
||||
#define USB_DEVICE_ID_ELECOM_M_HT1URBK_010C 0x010c
|
||||
#define USB_DEVICE_ID_ELECOM_M_HT1URBK_019B 0x019b
|
||||
#define USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D 0x010d
|
||||
#define USB_DEVICE_ID_ELECOM_M_HT1DRBK_011C 0x011c
|
||||
|
||||
|
||||
@@ -410,7 +410,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT4DRBK) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1URBK) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1DRBK) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK_010C) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1URBK_019B) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_HT1DRBK_011C) },
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user