> -----Original Message----- > From: Guenter Roeck <groeck7@xxxxxxxxx> On Behalf Of Guenter Roeck > Sent: Friday, November 16, 2018 6:15 PM > To: Vadim Pasternak <vadimp@xxxxxxxxxxxx> > Cc: linux-hwmon@xxxxxxxxxxxxxxx; Michael Shych <michaelsh@xxxxxxxxxxxx> > Subject: Re: [PATCH hwmon-next v1 1/1] hwmon: (mlxreg-fan) Fix macros for > tacho fault reading > > On Fri, Nov 16, 2018 at 01:47:11PM +0000, Vadim Pasternak wrote: > > Fix macros for tacometer fault reading. > > This fix is relevant for three Mellanox systems MQMB7, MSN37, MSN34, > > which are about to be released to the customers. > > At the moment, none of them is at customers sites. > > > > Fixes: 65afb4c8e7e4 ("hwmon: (mlxreg-fan) Add support for Mellanox FAN > > driver") > > Signed-off-by: Vadim Pasternak <vadimp@xxxxxxxxxxxx> > > --- > > drivers/hwmon/mlxreg-fan.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/hwmon/mlxreg-fan.c b/drivers/hwmon/mlxreg-fan.c > > index de46577..d8fa4be 100644 > > --- a/drivers/hwmon/mlxreg-fan.c > > +++ b/drivers/hwmon/mlxreg-fan.c > > @@ -51,7 +51,7 @@ > > */ > > #define MLXREG_FAN_GET_RPM(rval, d, s) > (DIV_ROUND_CLOSEST(15000000 * 100, \ > > ((rval) + (s)) * (d))) > > -#define MLXREG_FAN_GET_FAULT(val, mask) (!!((val) ^ (mask))) > > +#define MLXREG_FAN_GET_FAULT(val, mask) (!((val) ^ (mask))) > > You might want to check if the "^" is correct here. It looks fishy, since the > expression only evaluates to true if a no bit of val outside mask is set. I would > have expected "&". > > Guenter Hi Guenter, Thanks for you your comment. I'll follow your suggestion and change a macros to" #define MLXREG_FAN_GET_FAULT(val, mask) (!((val & mask) ^ (mask))) > > > #define MLXREG_FAN_PWM_DUTY2STATE(duty) > (DIV_ROUND_CLOSEST((duty) * \ > > MLXREG_FAN_MAX_STATE, > \ > > MLXREG_FAN_MAX_DUTY))