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 >