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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200403155310.GA19125@qmqm.qmqm.pl>
Date:   Fri, 3 Apr 2020 17:53:10 +0200
From:   Michał Mirosław <mirq-linux@...e.qmqm.pl>
To:     Guenter Roeck <linux@...ck-us.net>
Cc:     "Sebastian Reichel (maintainer:POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS 
        ,blamed_fixes:1/1=100%)" <sebastian.reichel@...labora.com>,
        "Andrey Smirnov (blamed_fixes:1/1=100%)" <andrew.smirnov@...il.com>,
        "open list:POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS" 
        <linux-pm@...r.kernel.org>,
        open list <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 3/7] power: supply: core: fix HWMON temperature labels

On Thu, Apr 02, 2020 at 11:29:32AM -0700, Guenter Roeck wrote:
> On 4/2/20 8:00 AM, Michał Mirosław wrote:
> > On Thu, Apr 02, 2020 at 07:52:19AM -0700, Guenter Roeck wrote:
> >> On 4/2/20 7:46 AM, Michał Mirosław wrote:
> >>> tempX_label files are swapped compared to what
> >>> power_supply_hwmon_temp_to_property() uses. Make them match.
> >>> While at it, make room for labeling other channels.
> >>>
> >>> Fixes: e67d4dfc9ff1 ("power: supply: Add HWMON compatibility layer")
> >>> Signed-off-by: Michał Mirosław <mirq-linux@...e.qmqm.pl>
> >>> ---
> >>>  drivers/power/supply/power_supply_hwmon.c | 14 +++++++++++++-
> >>>  1 file changed, 13 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/drivers/power/supply/power_supply_hwmon.c b/drivers/power/supply/power_supply_hwmon.c
> >>> index 75cf861ba492..83318a21fb52 100644
> >>> --- a/drivers/power/supply/power_supply_hwmon.c
> >>> +++ b/drivers/power/supply/power_supply_hwmon.c
> >>> @@ -43,6 +43,11 @@ static int power_supply_hwmon_curr_to_property(u32 attr)
> >>>  	}
> >>>  }
> >>>  
> >>> +static const char *const ps_temp_label[] = {
> >>> +	"temp",
> >>> +	"ambient temp",
> >>> +};
> >>> +
> >>>  static int power_supply_hwmon_temp_to_property(u32 attr, int channel)
> >>>  {
> >>>  	if (channel) {
> >>> @@ -144,7 +149,14 @@ static int power_supply_hwmon_read_string(struct device *dev,
> >>>  					  u32 attr, int channel,
> >>>  					  const char **str)
> >>>  {
> >>> -	*str = channel ? "temp" : "temp ambient";
> >>> +	switch (type) {
> >>> +	case hwmon_temp:
> >>> +		*str = ps_temp_label[channel];
> >>> +		break;
> >>> +	default:
> >>> +		break;
> >>
> >> That returns "no error" without setting *str, which is really asking for trouble.
> > 
> > This is carried over from earlier version. No bug though, but I'll add a
> > patch while I'm at it.
> > 
> 
> This is incorrect. The previous version does not check the type and always sets *str.
> 
> -	*str = channel ? "temp" : "temp ambient";

The function is called only for channels that have HWMON_T_LABEL set.
This is extended in later patches, though, so the type is going to be
required then. I'll split the addition so its more clear.

Best Regards,
Michał Mirosław

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ