aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2019-04-20 13:22:07 +0200
committerBenjamin Tissoires <benjamin.tissoires@redhat.com>2019-04-23 18:02:44 +0200
commit2ddf07f388af6c8f0db3ec21e17ca0f06b9ec0cc (patch)
treec0fe1e187adc6112959bea4608545956b0cdd3a9 /drivers/hid
parentHID: logitech-hidpp: ignore very-short or empty names (diff)
downloadlinux-dev-2ddf07f388af6c8f0db3ec21e17ca0f06b9ec0cc.tar.xz
linux-dev-2ddf07f388af6c8f0db3ec21e17ca0f06b9ec0cc.zip
HID: logitech-hidpp: do not make failure to get the name fatal
With devices attached to a non-unifying 2.4GHz receiver we sometimes fail to get the name. This is not a fatal error, we can just continue with the original name. So instead of bailing out, continue with battery-initialization when this happens. This fixes the battery not getting registered when we fail to get the name. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-logitech-hidpp.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index e7f082374943..2a0866e6face 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -3160,18 +3160,15 @@ static void hidpp_connect_event(struct hidpp_device *hidpp)
if (hidpp->name == hdev->name && hidpp->protocol_major >= 2) {
name = hidpp_get_device_name(hidpp);
- if (!name) {
- hid_err(hdev,
- "unable to retrieve the name of the device");
- return;
- }
-
- devm_name = devm_kasprintf(&hdev->dev, GFP_KERNEL, "%s", name);
- kfree(name);
- if (!devm_name)
- return;
+ if (name) {
+ devm_name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
+ "%s", name);
+ kfree(name);
+ if (!devm_name)
+ return;
- hidpp->name = devm_name;
+ hidpp->name = devm_name;
+ }
}
hidpp_initialize_battery(hidpp);