Messages in this thread | | | Subject | Re: [PATCH v2 4/8] power: supply: core: tabularize HWMON temperature labels | From | Guenter Roeck <> | Date | Fri, 3 Apr 2020 09:47:40 -0700 |
| |
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@rere.qmqm.pl> > --- > 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.
Guenter
> + *str = ps_temp_label[channel]; > + return 0; > + default: > + break; > + } > + > + return -EINVAL; > } > > static int >
| |