summaryrefslogtreecommitdiffstats
path: root/HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch
diff options
context:
space:
mode:
Diffstat (limited to 'HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch')
-rw-r--r--HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch55
1 files changed, 0 insertions, 55 deletions
diff --git a/HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch b/HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch
deleted file mode 100644
index acdd66d48..000000000
--- a/HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From d0a934b764c67b4bf626f5b7cf725a6e3066afd2 Mon Sep 17 00:00:00 2001
-From: David Herrmann <dh.herrmann@gmail.com>
-Date: Mon, 13 May 2013 15:01:30 +0000
-Subject: HID: input: return ENODATA if reading battery attrs fails
-
-power_supply core has the bad habit of calling our battery callbacks
-from within power_supply_register(). Furthermore, if the callbacks
-fail with an unhandled error code, it will skip any uevent that it
-might currently process.
-So if HID-core registers battery devices, an "add" uevent is generated
-and the battery callbacks are called. These will gracefully fail due
-to timeouts as they might still hold locks on event processing. One
-could argue that this should be fixed in power_supply core, but the
-least we can do is to signal ENODATA so power_supply core will just
-skip the property and continue with the uevent.
-
-This fixes a bug where "add" and "remove" uevents are skipped for
-battery devices. upower is unable to track these devices and currently
-needs to ignore them.
-
-This patch also overwrites any other error code. I cannot see any reason
-why we should forward protocol- or I/O-errors to the power_supply core.
-We handle these errors in hid_ll_driver later, anyway, so just skip
-them. power_supply core cannot do anything useful with them, anyway,
-and we avoid skipping important uevents and confusing user-space.
-
-Thanks a lot to Daniel Nicoletti for pushing and investigating
-on this.
-
-Cc: Jiri Kosina <jkosina@suse.cz>
-Cc: Anton Vorontsov <cbou@mail.ru>
-Cc: David Woodhouse <dwmw2@infradead.org>
-Reported-by: Daniel Nicoletti <dantti12@gmail.com>
-Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
-Signed-off-by: Jiri Kosina <jkosina@suse.cz>
----
-diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
-index 945b815..c526a3c 100644
---- a/drivers/hid/hid-input.c
-+++ b/drivers/hid/hid-input.c
-@@ -354,10 +354,10 @@ static int hidinput_get_battery_property(struct power_supply *psy,
- dev->battery_report_type);
-
- if (ret != 2) {
-- if (ret >= 0)
-- ret = -EINVAL;
-+ ret = -ENODATA;
- break;
- }
-+ ret = 0;
-
- if (dev->battery_min < dev->battery_max &&
- buf[1] >= dev->battery_min &&
---
-cgit v0.9.2