[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <dad5d544-7f6d-5c0d-6c6e-9d23cb0a6055@roeck-us.net>
Date: Fri, 3 Apr 2020 09:47:40 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Michał Mirosław <mirq-linux@...e.qmqm.pl>,
Andrey Smirnov <andrew.smirnov@...il.com>,
Sebastian Reichel <sebastian.reichel@...labora.com>
Cc: linux-kernel@...r.kernel.org, linux-pm@...r.kernel.org
Subject: Re: [PATCH v2 4/8] power: supply: core: tabularize HWMON temperature
labels
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@...e.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
>
Powered by blists - more mailing lists