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: 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