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  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Thu, 16 May 2019 09:37:52 -0700
From:   Florian Fainelli <f.fainelli@...il.com>
To:     Sudeep Holla <sudeep.holla@....com>,
        linux-arm-kernel@...ts.infradead.org
Cc:     linux-kernel@...r.kernel.org
Subject: Re: [PATCH] firmware: arm_scmi: fix bitfield definitions for
 SENSOR_DESC attributes

On 5/16/19 9:33 AM, Sudeep Holla wrote:
> As per the SCMI specification the bitfields for SENSOR_DESC attributes
> are as follows:
> attributes_low 	[7:0] 	Number of trip points supported
> attributes_high	[15:11]	The power-of-10 multiplier in 2's-complement
> 			format that is applied to the sensor units
> 
> Looks like the code developed during the draft versions of the
> specification slipped through and are wrong with respect to final
> released version. Fix them by adjusting the bitfields appropriately.
> 
> Cc: Florian Fainelli <f.fainelli@...il.com>
> Fixes: 5179c523c1ea ("firmware: arm_scmi: add initial support for sensor protocol")
> Signed-off-by: Sudeep Holla <sudeep.holla@....com>

Reviewed-by: Florian Fainelli <f.fainelli@...il.com>

> ---
>  drivers/firmware/arm_scmi/sensors.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> Hi Florian,
> 
> While testing your patches, I found this horrible/silly bug with bitfields
> which initial made me think firmware is buggy but later found out driver
> was buggy instead.
> 
> I updated your patch accordingly[1]

Looks good to me, thanks for fixing that up!

> 
> Regards,
> Sudeep
> 
> [1] https://git.kernel.org/sudeep.holla/linux/h/for-next/scmi-updates
> 
> diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm_scmi/sensors.c
> index b53d5cc9c9f6..c00287b5f2c2 100644
> --- a/drivers/firmware/arm_scmi/sensors.c
> +++ b/drivers/firmware/arm_scmi/sensors.c
> @@ -30,10 +30,10 @@ struct scmi_msg_resp_sensor_description {
>  		__le32 id;
>  		__le32 attributes_low;
>  #define SUPPORTS_ASYNC_READ(x)	((x) & BIT(31))
> -#define NUM_TRIP_POINTS(x)	(((x) >> 4) & 0xff)
> +#define NUM_TRIP_POINTS(x)	((x) & 0xff)
>  		__le32 attributes_high;
>  #define SENSOR_TYPE(x)		((x) & 0xff)
> -#define SENSOR_SCALE(x)		(((x) >> 11) & 0x3f)
> +#define SENSOR_SCALE(x)		(((x) >> 11) & 0x1f)
>  #define SENSOR_UPDATE_SCALE(x)	(((x) >> 22) & 0x1f)
>  #define SENSOR_UPDATE_BASE(x)	(((x) >> 27) & 0x1f)
>  		    u8 name[SCMI_MAX_STR_SIZE];
> 


-- 
Florian

Powered by blists - more mailing lists