From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: "Farber, Eliav" <farbere@amazon.com>
Cc: jdelvare@suse.com, linux@roeck-us.net, robh+dt@kernel.org,
p.zabel@pengutronix.de, rtanwar@maxlinear.com,
linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, hhhawa@amazon.com,
jonnyc@amazon.com
Subject: Re: [PATCH v4 05/21] hwmon: (mr75203) fix voltage equation for negative source input
Date: Tue, 6 Sep 2022 17:01:15 +0300 [thread overview]
Message-ID: <YxdSqw6STdkbDESV@smile.fi.intel.com> (raw)
In-Reply-To: <29fa5c01-aad0-04ff-e1a9-1510858eff7e@amazon.com>
On Tue, Sep 06, 2022 at 04:27:13PM +0300, Farber, Eliav wrote:
> On 9/6/2022 3:03 PM, Andy Shevchenko wrote:
> > On Tue, Sep 06, 2022 at 08:33:40AM +0000, Eliav Farber wrote:
...
> > > - *val = (PVT_N_CONST * n - PVT_R_CONST) >> PVT_CONV_BITS;
> > > + *val = (PVT_N_CONST * (long)n - PVT_R_CONST) / (1 <<
> > > PVT_CONV_BITS);
> >
> > Wondering if we can use BIT(PVT_CONV_BITS) for two (quite unlikely to
> > happen,
> > I hope) purposes:
> >
> > 1) Somebody copies such code where PVT_CONV_BITS analogue can be 31,
> > which is according to C standard is UB (undefined behaviour).
> >
> > 2) It makes shorter the line and also drops the pattern where some
> > dumb robot may propose a patch to basically revert the division
> > change.
> I originally tried to use BIT(PVT_CONV_BITS) but it gave a different
> result.
> e.g.
> If n = 2720
> *val = (PVT_N_CONST * (long)n - PVT_R_CONST) / (1 << PVT_CONV_BITS) = 0
> *val = (PVT_N_CONST * (long)n - PVT_R_CONST) / BIT(PVT_CONV_BITS) =
> 18014398509481983
>
> I can try fitting it in one line, either by adding a define for
> (1 << PVT_CONV_BITS) or exceeding 80 characters, but keep in mind that
> in a later patch (#15) it gets even longer (and I must use more than
> one line) since it is multiplied by a pre-scaler factor.
Don't get me wrong, it's not about style, it's about preventing
followup "fixes" of this. All the problems here due to (hidden)
unsigned type(s).
What you can do is to add a good comment on top of that line
explaining why division instead of right shift and why BIT()
may not be used (because it's unsigned).
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2022-09-06 15:52 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-06 8:33 [PATCH v4 00/21] Variety of fixes and new features for mr75203 driver Eliav Farber
2022-09-06 8:33 ` [PATCH v4 01/21] hwmon: (mr75203) fix coding style space errors Eliav Farber
2022-09-06 16:52 ` Guenter Roeck
2022-09-07 6:50 ` Farber, Eliav
2022-09-07 14:42 ` Andy Shevchenko
2022-09-07 15:57 ` Guenter Roeck
2022-09-06 8:33 ` [PATCH v4 02/21] dt-bindings: hwmon: (mr75203) fix "intel,vm-map" property to be optional Eliav Farber
2022-09-06 16:53 ` Guenter Roeck
2022-09-07 6:28 ` [PATCH v4 02/21] dt-bindings: hwmon: (mr75203) fix "intel, vm-map" " Farber, Eliav
2022-09-07 16:00 ` Guenter Roeck
2022-09-06 8:33 ` [PATCH v4 03/21] hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined Eliav Farber
2022-09-06 8:33 ` [PATCH v4 04/21] hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used sensors Eliav Farber
2022-09-06 8:33 ` [PATCH v4 05/21] hwmon: (mr75203) fix voltage equation for negative source input Eliav Farber
2022-09-06 12:03 ` Andy Shevchenko
2022-09-06 13:27 ` Farber, Eliav
2022-09-06 14:01 ` Andy Shevchenko [this message]
2022-09-06 8:33 ` [PATCH v4 06/21] hwmon: (mr75203) fix multi-channel voltage reading Eliav Farber
2022-09-06 14:10 ` Andy Shevchenko
2022-09-07 5:15 ` Farber, Eliav
2022-09-07 14:41 ` Andy Shevchenko
2022-09-06 8:33 ` [PATCH v4 07/21] hwmon: (mr75203) enable polling for all VM channels Eliav Farber
2022-09-06 8:33 ` [PATCH v4 08/21] dt-bindings: hwmon: (mr75203) add description for Moortec's PVT controller Eliav Farber
2022-09-08 22:40 ` Rob Herring
2022-09-06 8:33 ` [PATCH v4 09/21] dt-bindings: hwmon: (mr75203) change "resets" property to be optional Eliav Farber
2022-09-08 22:40 ` Rob Herring
2022-09-06 8:33 ` [PATCH v4 10/21] hwmon: (mr75203) skip reset-control deassert for SOCs that don't support it Eliav Farber
2022-09-06 8:33 ` [PATCH v4 11/21] dt-bindings: vendor-prefixes: add vendor prefix for Moortec Eliav Farber
2022-09-06 8:33 ` [PATCH v4 12/21] dt-bindings: hwmon: (mr75203) add "moortec,vm-active-channels" property Eliav Farber
2022-09-06 17:08 ` Guenter Roeck
2022-09-07 5:21 ` [PATCH v4 12/21] dt-bindings: hwmon: (mr75203) add "moortec, vm-active-channels" property Farber, Eliav
2022-09-06 8:33 ` [PATCH v4 13/21] hwmon: (mr75203) add VM active channel support Eliav Farber
2022-09-06 8:33 ` [PATCH v4 14/21] dt-bindings: hwmon: (mr75203) add "moortec,vm-pre-scaler-x2" property Eliav Farber
2022-09-06 8:33 ` [PATCH v4 15/21] hwmon: (mr75203) add VM pre-scaler x2 support Eliav Farber
2022-09-06 8:33 ` [PATCH v4 16/21] hwmon: (mr75203) modify the temperature equation according to series 5 datasheet Eliav Farber
2022-09-06 8:33 ` [PATCH v4 17/21] dt-bindings: hwmon: (mr75203) add "moortec,ts-series" property Eliav Farber
2022-09-06 8:33 ` [PATCH v4 18/21] hwmon: (mr75203) add support for series 6 temperature equation Eliav Farber
2022-09-06 8:33 ` [PATCH v4 19/21] dt-bindings: hwmon: (mr75203) add coefficient properties for the thermal equation Eliav Farber
2022-09-06 8:33 ` [PATCH v4 20/21] hwmon: (mr75203) parse temperature coefficients from device-tree Eliav Farber
2022-09-06 8:33 ` [PATCH v4 21/21] hwmon: (mr75203) add debugfs to read and write temperature coefficients Eliav Farber
2022-09-06 14:26 ` [PATCH v4 00/21] Variety of fixes and new features for mr75203 driver Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YxdSqw6STdkbDESV@smile.fi.intel.com \
--to=andriy.shevchenko@intel.com \
--cc=devicetree@vger.kernel.org \
--cc=farbere@amazon.com \
--cc=hhhawa@amazon.com \
--cc=jdelvare@suse.com \
--cc=jonnyc@amazon.com \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=rtanwar@maxlinear.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).