diff options
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.patch | 55 |
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 |