drivers/hid/hid-appletb-kbd.c | 5 +++++ 1 file changed, 5 insertions(+)
During appletb_kbd_probe, probe attempts to get the backlight device
by name. When this happens backlight_device_get_by_name looks for a
device in the backlight class which has name "appletb_backlight" and
upon finding a match it increments the reference count for the device
and returns it to the caller. However this reference is never released
leading to a reference leak.
Fix this by decrementing the backlight device reference count on removal
via put_device and on probe failure.
Fixes: 93a0fc489481 ("HID: hid-appletb-kbd: add support for automatic brightness control while using the touchbar")
Cc: stable@vger.kernel.org
Signed-off-by: Qasim Ijaz <qasdev00@gmail.com>
---
drivers/hid/hid-appletb-kbd.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/hid/hid-appletb-kbd.c b/drivers/hid/hid-appletb-kbd.c
index ef51b2c06872..e06567886e50 100644
--- a/drivers/hid/hid-appletb-kbd.c
+++ b/drivers/hid/hid-appletb-kbd.c
@@ -438,6 +438,8 @@ static int appletb_kbd_probe(struct hid_device *hdev, const struct hid_device_id
return 0;
close_hw:
+ if (kbd->backlight_dev)
+ put_device(&kbd->backlight_dev->dev);
hid_hw_close(hdev);
stop_hw:
hid_hw_stop(hdev);
@@ -453,6 +455,9 @@ static void appletb_kbd_remove(struct hid_device *hdev)
input_unregister_handler(&kbd->inp_handler);
timer_delete_sync(&kbd->inactivity_timer);
+ if (kbd->backlight_dev)
+ put_device(&kbd->backlight_dev->dev);
+
hid_hw_close(hdev);
hid_hw_stop(hdev);
}
--
2.39.5
On Sun, 15 Jun 2025, Qasim Ijaz wrote: > During appletb_kbd_probe, probe attempts to get the backlight device > by name. When this happens backlight_device_get_by_name looks for a > device in the backlight class which has name "appletb_backlight" and > upon finding a match it increments the reference count for the device > and returns it to the caller. However this reference is never released > leading to a reference leak. > > Fix this by decrementing the backlight device reference count on removal > via put_device and on probe failure. > > Fixes: 93a0fc489481 ("HID: hid-appletb-kbd: add support for automatic brightness control while using the touchbar") > Cc: stable@vger.kernel.org > Signed-off-by: Qasim Ijaz <qasdev00@gmail.com> Applied, thanks. -- Jiri Kosina SUSE Labs
Hi Qasim > During appletb_kbd_probe, probe attempts to get the backlight device > by name. When this happens backlight_device_get_by_name looks for a > device in the backlight class which has name "appletb_backlight" and > upon finding a match it increments the reference count for the device > and returns it to the caller. However this reference is never released > leading to a reference leak. Good catch. > Fix this by decrementing the backlight device reference count on removal > via put_device and on probe failure. Thanks for the fix! > Fixes: 93a0fc489481 ("HID: hid-appletb-kbd: add support for automatic brightness control while using the touchbar") > Cc: stable@vger.kernel.org > Signed-off-by: Qasim Ijaz <qasdev00@gmail.com> Reviewed-by: Aditya Garg <gargaditya08@live.com>
© 2016 - 2025 Red Hat, Inc.