Skip to content

Commit

Permalink
power: supply: Drop use_cnt check from power_supply_property_is_write…
Browse files Browse the repository at this point in the history
…able()

power_supply_property_is_writeable() gets called from the is_visible()
callback for the sysfs attributes of power_supply class devices and for
the sysfs attributes of power_supply core instantiated hwmon class devices.

These sysfs attributes get registered by the device_add() respectively
power_supply_add_hwmon_sysfs() calls in power_supply_register().

use_cnt gets initialized to 0 and is incremented only after these calls.
So when power_supply_property_is_writeable() gets called it always return
-ENODEV because of use_cnt == 0.

This causes all the attributes to have permissions of 444 even those which
should be writable. This used to be a problem only for hwmon sysfs
attributes but since commit be6299c ("power: supply: sysfs: use
power_supply_property_is_writeable()") this now also impacts power_supply
class sysfs attributes.

Fixes: be6299c ("power: supply: sysfs: use power_supply_property_is_writeable()")
Fixes: e67d4df ("power: supply: Add HWMON compatibility layer")
Cc: [email protected]
Cc: Thomas Weißschuh <[email protected]>
Cc: Andrey Smirnov <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
  • Loading branch information
jwrdegoede authored and herrnst committed Sep 22, 2024
1 parent bb61f48 commit cfe8a6e
Showing 1 changed file with 1 addition and 5 deletions.
6 changes: 1 addition & 5 deletions drivers/power/supply/power_supply_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1232,11 +1232,7 @@ EXPORT_SYMBOL_GPL(power_supply_set_property);
int power_supply_property_is_writeable(struct power_supply *psy,
enum power_supply_property psp)
{
if (atomic_read(&psy->use_cnt) <= 0 ||
!psy->desc->property_is_writeable)
return -ENODEV;

return psy->desc->property_is_writeable(psy, psp);
return psy->desc->property_is_writeable && psy->desc->property_is_writeable(psy, psp);
}
EXPORT_SYMBOL_GPL(power_supply_property_is_writeable);

Expand Down

0 comments on commit cfe8a6e

Please sign in to comment.