Re: [PATCH] hwmon: (dell-smm) Fix warning on /proc/i8k creation error

From: Pali Rohár
Date: Fri Nov 12 2021 - 12:49:40 EST


On Friday 12 November 2021 18:14:40 Armin Wolf wrote:
> The removal function is called regardless of whether
> /proc/i8k was created successfully or not, the later
> causing a WARN() on module removal.
> Fix that by only registering the removal function
> if /proc/i8k was created successfully.
>
> Tested on a Inspiron 3505.
>
> Fixes: 039ae58503f3 ("hwmon: Allow to compile dell-smm-hwmon driver without /proc/i8k")
> Signed-off-by: Armin Wolf <W_Armin@xxxxxx>

Acked-by: Pali Rohár <pali@xxxxxxxxxx>

> ---
> drivers/hwmon/dell-smm-hwmon.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c
> index eaace478f508..5596c211f38d 100644
> --- a/drivers/hwmon/dell-smm-hwmon.c
> +++ b/drivers/hwmon/dell-smm-hwmon.c
> @@ -627,10 +627,9 @@ static void __init i8k_init_procfs(struct device *dev)
> {
> struct dell_smm_data *data = dev_get_drvdata(dev);
>
> - /* Register the proc entry */
> - proc_create_data("i8k", 0, NULL, &i8k_proc_ops, data);
> -
> - devm_add_action_or_reset(dev, i8k_exit_procfs, NULL);
> + /* Only register exit function if creation was successful */
> + if (proc_create_data("i8k", 0, NULL, &i8k_proc_ops, data))
> + devm_add_action_or_reset(dev, i8k_exit_procfs, NULL);
> }
>
> #else
> --
> 2.30.2
>