> -----Original Message-----
> From: Guenter Roeck <[email protected]> On Behalf Of Guenter Roeck
> Sent: Friday, November 16, 2018 6:15 PM
> To: Vadim Pasternak <[email protected]>
> Cc: [email protected]; Michael Shych <[email protected]>
> 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 <[email protected]>
> > ---
> > 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))