lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 6 Aug 2017 14:35:48 +0200 From: Hans de Goede <hdegoede@...hat.com> To: Darren Hart <dvhart@...radead.org>, Andy Shevchenko <andy@...radead.org>, Wolfram Sang <wsa@...-dreams.de>, Sebastian Reichel <sre@...nel.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Guenter Roeck <linux@...ck-us.net>, Heikki Krogerus <heikki.krogerus@...ux.intel.com> Cc: Hans de Goede <hdegoede@...hat.com>, platform-driver-x86@...r.kernel.org, linux-kernel@...r.kernel.org, linux-i2c@...r.kernel.org, Liam Breck <liam@...workimprov.net>, Tony Lindgren <tony@...mide.com>, linux-pm@...r.kernel.org, devel@...verdev.osuosl.org Subject: [PATCH 11/18] power: supply: Fix power_supply_am_i_supplied to return -ENODEV when apropriate Commit 2848e039c562 ("power: supply: Make power_supply_am_i_supplied return -ENODEV if there are no suppliers") was supposed to make power_supply_am_i_supplied() return -ENODEV when there are no supplies which supply the supply passed to it. But instead it will only return -ENODEV when there are no supplies at all as data->count++; is incremented on every call of the iterator, rather then only when __power_supply_is_supplied_by returns true. This commit fixes this. Fixes: 2848e039c562 ("power: supply: Make power_supply_am_i_supplied ...") Signed-off-by: Hans de Goede <hdegoede@...hat.com> --- drivers/power/supply/power_supply_core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c index 540d3e0aa011..0741fcef3b44 100644 --- a/drivers/power/supply/power_supply_core.c +++ b/drivers/power/supply/power_supply_core.c @@ -314,11 +314,12 @@ static int __power_supply_am_i_supplied(struct device *dev, void *_data) struct power_supply *epsy = dev_get_drvdata(dev); struct psy_am_i_supplied_data *data = _data; - data->count++; - if (__power_supply_is_supplied_by(epsy, data->psy)) + if (__power_supply_is_supplied_by(epsy, data->psy)) { + data->count++; if (!epsy->desc->get_property(epsy, POWER_SUPPLY_PROP_ONLINE, &ret)) return ret.intval; + } return 0; } -- 2.13.3
Powered by blists - more mailing lists