Re: [PATCH v2 4/8] power: supply: core: tabularize HWMON temperature labels

From: Michał Mirosław
Date: Fri Apr 03 2020 - 12:56:48 EST


On Fri, Apr 03, 2020 at 09:47:40AM -0700, Guenter Roeck wrote:
> On 4/3/20 9:23 AM, Michał Mirosław wrote:
> > Rework power_supply_hwmon_read_string() to check it's parameters.
> > This allows to extend it later with labels for other types of
> > measurements.
> >
> > Signed-off-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxx>
> > ---
> > v2: split from fix temperature labels
> > ---
> > drivers/power/supply/power_supply_hwmon.c | 21 +++++++++++++++++++--
> > 1 file changed, 19 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/power/supply/power_supply_hwmon.c b/drivers/power/supply/power_supply_hwmon.c
> > index 67b6ee60085e..48c73994732c 100644
> > --- a/drivers/power/supply/power_supply_hwmon.c
> > +++ b/drivers/power/supply/power_supply_hwmon.c
> > @@ -43,6 +43,11 @@ static int power_supply_hwmon_curr_to_property(u32 attr)
> > }
> > }
> >
> > +static const char *const ps_temp_label[] = {
> > + "temp",
> > + "ambient temp",
> > +};
> > +
> > static int power_supply_hwmon_temp_to_property(u32 attr, int channel)
> > {
> > if (channel) {
> > @@ -144,8 +149,20 @@ static int power_supply_hwmon_read_string(struct device *dev,
> > u32 attr, int channel,
> > const char **str)
> > {
> > - *str = channel ? "temp ambient" : "temp";
> > - return 0;
> > + if (channel < 0)
> > + return -EINVAL;
> > +
>
> This is unnecessary.
>
> > + switch (type) {
> > + case hwmon_temp:
> > + if (channel >= ARRAY_SIZE(ps_temp_label))
> > + return -EINVAL;
>
> As is this. We don't usually check boundaries like this for
> in-kernel APIs, and I personally would not want to have it
> introduced in the kernel more than necessary. This just increases
> kernel image size with zero benefit.

I'll amend other patches in the same spirit, then. I like the code size
argument.

Best Regards,
Michał Mirosław