On Mon, Oct 26, 2020 at 11:53:52AM +0100, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > > The only action currently performed in pmbus_do_remove() is removing the > debugfs hierarchy. We can schedule a devm action at probe time and remove > pmbus_do_remove() entirely from all pmbus drivers. > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> Applied. Thanks, Guenter > --- > drivers/hwmon/pmbus/adm1266.c | 1 - > drivers/hwmon/pmbus/adm1275.c | 1 - > drivers/hwmon/pmbus/bel-pfe.c | 1 - > drivers/hwmon/pmbus/ibm-cffps.c | 1 - > drivers/hwmon/pmbus/inspur-ipsps.c | 1 - > drivers/hwmon/pmbus/ir35221.c | 1 - > drivers/hwmon/pmbus/ir38064.c | 1 - > drivers/hwmon/pmbus/irps5401.c | 1 - > drivers/hwmon/pmbus/isl68137.c | 1 - > drivers/hwmon/pmbus/lm25066.c | 1 - > drivers/hwmon/pmbus/ltc2978.c | 1 - > drivers/hwmon/pmbus/ltc3815.c | 1 - > drivers/hwmon/pmbus/max16064.c | 1 - > drivers/hwmon/pmbus/max16601.c | 1 - > drivers/hwmon/pmbus/max20730.c | 1 - > drivers/hwmon/pmbus/max20751.c | 1 - > drivers/hwmon/pmbus/max31785.c | 1 - > drivers/hwmon/pmbus/max34440.c | 1 - > drivers/hwmon/pmbus/max8688.c | 1 - > drivers/hwmon/pmbus/mp2975.c | 1 - > drivers/hwmon/pmbus/pmbus.c | 1 - > drivers/hwmon/pmbus/pmbus.h | 1 - > drivers/hwmon/pmbus/pmbus_core.c | 20 +++++++++----------- > drivers/hwmon/pmbus/pxe1610.c | 1 - > drivers/hwmon/pmbus/tps40422.c | 1 - > drivers/hwmon/pmbus/tps53679.c | 1 - > drivers/hwmon/pmbus/ucd9000.c | 1 - > drivers/hwmon/pmbus/ucd9200.c | 1 - > drivers/hwmon/pmbus/xdpe12284.c | 1 - > drivers/hwmon/pmbus/zl6100.c | 1 - > 30 files changed, 9 insertions(+), 40 deletions(-) > > diff --git a/drivers/hwmon/pmbus/adm1266.c b/drivers/hwmon/pmbus/adm1266.c > index c7b373ba92f2..4d2e4ddcfbfd 100644 > --- a/drivers/hwmon/pmbus/adm1266.c > +++ b/drivers/hwmon/pmbus/adm1266.c > @@ -502,7 +502,6 @@ static struct i2c_driver adm1266_driver = { > .of_match_table = adm1266_of_match, > }, > .probe_new = adm1266_probe, > - .remove = pmbus_do_remove, > .id_table = adm1266_id, > }; > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c > index e7997f37b266..38a6515b0763 100644 > --- a/drivers/hwmon/pmbus/adm1275.c > +++ b/drivers/hwmon/pmbus/adm1275.c > @@ -797,7 +797,6 @@ static struct i2c_driver adm1275_driver = { > .name = "adm1275", > }, > .probe_new = adm1275_probe, > - .remove = pmbus_do_remove, > .id_table = adm1275_id, > }; > > diff --git a/drivers/hwmon/pmbus/bel-pfe.c b/drivers/hwmon/pmbus/bel-pfe.c > index 2c5b853d6c7f..aed7542d7ce5 100644 > --- a/drivers/hwmon/pmbus/bel-pfe.c > +++ b/drivers/hwmon/pmbus/bel-pfe.c > @@ -121,7 +121,6 @@ static struct i2c_driver pfe_pmbus_driver = { > .name = "bel-pfe", > }, > .probe_new = pfe_pmbus_probe, > - .remove = pmbus_do_remove, > .id_table = pfe_device_id, > }; > > diff --git a/drivers/hwmon/pmbus/ibm-cffps.c b/drivers/hwmon/pmbus/ibm-cffps.c > index 2fb7540ee952..d6bbbb223871 100644 > --- a/drivers/hwmon/pmbus/ibm-cffps.c > +++ b/drivers/hwmon/pmbus/ibm-cffps.c > @@ -617,7 +617,6 @@ static struct i2c_driver ibm_cffps_driver = { > .of_match_table = ibm_cffps_of_match, > }, > .probe_new = ibm_cffps_probe, > - .remove = pmbus_do_remove, > .id_table = ibm_cffps_id, > }; > > diff --git a/drivers/hwmon/pmbus/inspur-ipsps.c b/drivers/hwmon/pmbus/inspur-ipsps.c > index be493182174d..88c5865c4d6f 100644 > --- a/drivers/hwmon/pmbus/inspur-ipsps.c > +++ b/drivers/hwmon/pmbus/inspur-ipsps.c > @@ -216,7 +216,6 @@ static struct i2c_driver ipsps_driver = { > .of_match_table = of_match_ptr(ipsps_of_match), > }, > .probe_new = ipsps_probe, > - .remove = pmbus_do_remove, > .id_table = ipsps_id, > }; > > diff --git a/drivers/hwmon/pmbus/ir35221.c b/drivers/hwmon/pmbus/ir35221.c > index 5fadb1def49f..3aebeb1443fd 100644 > --- a/drivers/hwmon/pmbus/ir35221.c > +++ b/drivers/hwmon/pmbus/ir35221.c > @@ -137,7 +137,6 @@ static struct i2c_driver ir35221_driver = { > .name = "ir35221", > }, > .probe_new = ir35221_probe, > - .remove = pmbus_do_remove, > .id_table = ir35221_id, > }; > > diff --git a/drivers/hwmon/pmbus/ir38064.c b/drivers/hwmon/pmbus/ir38064.c > index 9ac563ce7dd8..46f17c4b4873 100644 > --- a/drivers/hwmon/pmbus/ir38064.c > +++ b/drivers/hwmon/pmbus/ir38064.c > @@ -53,7 +53,6 @@ static struct i2c_driver ir38064_driver = { > .name = "ir38064", > }, > .probe_new = ir38064_probe, > - .remove = pmbus_do_remove, > .id_table = ir38064_id, > }; > > diff --git a/drivers/hwmon/pmbus/irps5401.c b/drivers/hwmon/pmbus/irps5401.c > index 44aeafcbd56c..93ef6d64a33a 100644 > --- a/drivers/hwmon/pmbus/irps5401.c > +++ b/drivers/hwmon/pmbus/irps5401.c > @@ -55,7 +55,6 @@ static struct i2c_driver irps5401_driver = { > .name = "irps5401", > }, > .probe_new = irps5401_probe, > - .remove = pmbus_do_remove, > .id_table = irps5401_id, > }; > > diff --git a/drivers/hwmon/pmbus/isl68137.c b/drivers/hwmon/pmbus/isl68137.c > index 7cad76e07f70..2bee930d3900 100644 > --- a/drivers/hwmon/pmbus/isl68137.c > +++ b/drivers/hwmon/pmbus/isl68137.c > @@ -324,7 +324,6 @@ static struct i2c_driver isl68137_driver = { > .name = "isl68137", > }, > .probe_new = isl68137_probe, > - .remove = pmbus_do_remove, > .id_table = raa_dmpvr_id, > }; > > diff --git a/drivers/hwmon/pmbus/lm25066.c b/drivers/hwmon/pmbus/lm25066.c > index 429172a42902..c75a6bf39641 100644 > --- a/drivers/hwmon/pmbus/lm25066.c > +++ b/drivers/hwmon/pmbus/lm25066.c > @@ -508,7 +508,6 @@ static struct i2c_driver lm25066_driver = { > .name = "lm25066", > }, > .probe_new = lm25066_probe, > - .remove = pmbus_do_remove, > .id_table = lm25066_id, > }; > > diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c > index 9a024cf70145..7e53fa95b92d 100644 > --- a/drivers/hwmon/pmbus/ltc2978.c > +++ b/drivers/hwmon/pmbus/ltc2978.c > @@ -875,7 +875,6 @@ static struct i2c_driver ltc2978_driver = { > .of_match_table = of_match_ptr(ltc2978_of_match), > }, > .probe_new = ltc2978_probe, > - .remove = pmbus_do_remove, > .id_table = ltc2978_id, > }; > > diff --git a/drivers/hwmon/pmbus/ltc3815.c b/drivers/hwmon/pmbus/ltc3815.c > index 8328fb367ad6..e45e14d26c9a 100644 > --- a/drivers/hwmon/pmbus/ltc3815.c > +++ b/drivers/hwmon/pmbus/ltc3815.c > @@ -200,7 +200,6 @@ static struct i2c_driver ltc3815_driver = { > .name = "ltc3815", > }, > .probe_new = ltc3815_probe, > - .remove = pmbus_do_remove, > .id_table = ltc3815_id, > }; > > diff --git a/drivers/hwmon/pmbus/max16064.c b/drivers/hwmon/pmbus/max16064.c > index 26e7f5ef9d7f..d79add99083e 100644 > --- a/drivers/hwmon/pmbus/max16064.c > +++ b/drivers/hwmon/pmbus/max16064.c > @@ -103,7 +103,6 @@ static struct i2c_driver max16064_driver = { > .name = "max16064", > }, > .probe_new = max16064_probe, > - .remove = pmbus_do_remove, > .id_table = max16064_id, > }; > > diff --git a/drivers/hwmon/pmbus/max16601.c b/drivers/hwmon/pmbus/max16601.c > index 71bb74e27a5c..a960b86e72d2 100644 > --- a/drivers/hwmon/pmbus/max16601.c > +++ b/drivers/hwmon/pmbus/max16601.c > @@ -302,7 +302,6 @@ static struct i2c_driver max16601_driver = { > .name = "max16601", > }, > .probe_new = max16601_probe, > - .remove = pmbus_do_remove, > .id_table = max16601_id, > }; > > diff --git a/drivers/hwmon/pmbus/max20730.c b/drivers/hwmon/pmbus/max20730.c > index 57923d72490c..bb0f38d9cfcc 100644 > --- a/drivers/hwmon/pmbus/max20730.c > +++ b/drivers/hwmon/pmbus/max20730.c > @@ -779,7 +779,6 @@ static struct i2c_driver max20730_driver = { > .of_match_table = max20730_of_match, > }, > .probe_new = max20730_probe, > - .remove = pmbus_do_remove, > .id_table = max20730_id, > }; > > diff --git a/drivers/hwmon/pmbus/max20751.c b/drivers/hwmon/pmbus/max20751.c > index 921e92d82aec..9d42f82fdd99 100644 > --- a/drivers/hwmon/pmbus/max20751.c > +++ b/drivers/hwmon/pmbus/max20751.c > @@ -43,7 +43,6 @@ static struct i2c_driver max20751_driver = { > .name = "max20751", > }, > .probe_new = max20751_probe, > - .remove = pmbus_do_remove, > .id_table = max20751_id, > }; > > diff --git a/drivers/hwmon/pmbus/max31785.c b/drivers/hwmon/pmbus/max31785.c > index 839b957bc03e..e5a9f4019cd5 100644 > --- a/drivers/hwmon/pmbus/max31785.c > +++ b/drivers/hwmon/pmbus/max31785.c > @@ -390,7 +390,6 @@ static struct i2c_driver max31785_driver = { > .of_match_table = max31785_of_match, > }, > .probe_new = max31785_probe, > - .remove = pmbus_do_remove, > .id_table = max31785_id, > }; > > diff --git a/drivers/hwmon/pmbus/max34440.c b/drivers/hwmon/pmbus/max34440.c > index f4cb196aaaf3..dad66b3c0116 100644 > --- a/drivers/hwmon/pmbus/max34440.c > +++ b/drivers/hwmon/pmbus/max34440.c > @@ -521,7 +521,6 @@ static struct i2c_driver max34440_driver = { > .name = "max34440", > }, > .probe_new = max34440_probe, > - .remove = pmbus_do_remove, > .id_table = max34440_id, > }; > > diff --git a/drivers/hwmon/pmbus/max8688.c b/drivers/hwmon/pmbus/max8688.c > index 4b2239a6afd3..329dc851fc59 100644 > --- a/drivers/hwmon/pmbus/max8688.c > +++ b/drivers/hwmon/pmbus/max8688.c > @@ -183,7 +183,6 @@ static struct i2c_driver max8688_driver = { > .name = "max8688", > }, > .probe_new = max8688_probe, > - .remove = pmbus_do_remove, > .id_table = max8688_id, > }; > > diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c > index 1c3e2a9453b1..60fbdb371332 100644 > --- a/drivers/hwmon/pmbus/mp2975.c > +++ b/drivers/hwmon/pmbus/mp2975.c > @@ -758,7 +758,6 @@ static struct i2c_driver mp2975_driver = { > .of_match_table = of_match_ptr(mp2975_of_match), > }, > .probe_new = mp2975_probe, > - .remove = pmbus_do_remove, > .id_table = mp2975_id, > }; > > diff --git a/drivers/hwmon/pmbus/pmbus.c b/drivers/hwmon/pmbus/pmbus.c > index 20f1af9165c2..a1b4260e75b2 100644 > --- a/drivers/hwmon/pmbus/pmbus.c > +++ b/drivers/hwmon/pmbus/pmbus.c > @@ -238,7 +238,6 @@ static struct i2c_driver pmbus_driver = { > .name = "pmbus", > }, > .probe_new = pmbus_probe, > - .remove = pmbus_do_remove, > .id_table = pmbus_id, > }; > > diff --git a/drivers/hwmon/pmbus/pmbus.h b/drivers/hwmon/pmbus/pmbus.h > index 88a5df2633fb..4c30ec89f5bf 100644 > --- a/drivers/hwmon/pmbus/pmbus.h > +++ b/drivers/hwmon/pmbus/pmbus.h > @@ -490,7 +490,6 @@ void pmbus_clear_faults(struct i2c_client *client); > bool pmbus_check_byte_register(struct i2c_client *client, int page, int reg); > bool pmbus_check_word_register(struct i2c_client *client, int page, int reg); > int pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info); > -int pmbus_do_remove(struct i2c_client *client); > const struct pmbus_driver_info *pmbus_get_driver_info(struct i2c_client > *client); > int pmbus_get_fan_rate_device(struct i2c_client *client, int page, int id, > diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c > index 170a9f82ca61..996393339be3 100644 > --- a/drivers/hwmon/pmbus/pmbus_core.c > +++ b/drivers/hwmon/pmbus/pmbus_core.c > @@ -2388,6 +2388,13 @@ static int pmbus_debugfs_set_pec(void *data, u64 val) > DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_pec, pmbus_debugfs_get_pec, > pmbus_debugfs_set_pec, "%llu\n"); > > +static void pmbus_remove_debugfs(void *data) > +{ > + struct dentry *entry = data; > + > + debugfs_remove_recursive(entry); > +} > + > static int pmbus_init_debugfs(struct i2c_client *client, > struct pmbus_data *data) > { > @@ -2523,7 +2530,8 @@ static int pmbus_init_debugfs(struct i2c_client *client, > } > } > > - return 0; > + return devm_add_action_or_reset(data->dev, > + pmbus_remove_debugfs, data->debugfs); > } > #else > static int pmbus_init_debugfs(struct i2c_client *client, > @@ -2610,16 +2618,6 @@ int pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info) > } > EXPORT_SYMBOL_GPL(pmbus_do_probe); > > -int pmbus_do_remove(struct i2c_client *client) > -{ > - struct pmbus_data *data = i2c_get_clientdata(client); > - > - debugfs_remove_recursive(data->debugfs); > - > - return 0; > -} > -EXPORT_SYMBOL_GPL(pmbus_do_remove); > - > struct dentry *pmbus_get_debugfs_dir(struct i2c_client *client) > { > struct pmbus_data *data = i2c_get_clientdata(client); > diff --git a/drivers/hwmon/pmbus/pxe1610.c b/drivers/hwmon/pmbus/pxe1610.c > index fa5c5dd29b7a..da27ce34ee3f 100644 > --- a/drivers/hwmon/pmbus/pxe1610.c > +++ b/drivers/hwmon/pmbus/pxe1610.c > @@ -131,7 +131,6 @@ static struct i2c_driver pxe1610_driver = { > .name = "pxe1610", > }, > .probe_new = pxe1610_probe, > - .remove = pmbus_do_remove, > .id_table = pxe1610_id, > }; > > diff --git a/drivers/hwmon/pmbus/tps40422.c b/drivers/hwmon/pmbus/tps40422.c > index edbdfa809d51..f7f00ab6f46c 100644 > --- a/drivers/hwmon/pmbus/tps40422.c > +++ b/drivers/hwmon/pmbus/tps40422.c > @@ -43,7 +43,6 @@ static struct i2c_driver tps40422_driver = { > .name = "tps40422", > }, > .probe_new = tps40422_probe, > - .remove = pmbus_do_remove, > .id_table = tps40422_id, > }; > > diff --git a/drivers/hwmon/pmbus/tps53679.c b/drivers/hwmon/pmbus/tps53679.c > index db2bdf2a1f02..ba838fa311c3 100644 > --- a/drivers/hwmon/pmbus/tps53679.c > +++ b/drivers/hwmon/pmbus/tps53679.c > @@ -251,7 +251,6 @@ static struct i2c_driver tps53679_driver = { > .of_match_table = of_match_ptr(tps53679_of_match), > }, > .probe_new = tps53679_probe, > - .remove = pmbus_do_remove, > .id_table = tps53679_id, > }; > > diff --git a/drivers/hwmon/pmbus/ucd9000.c b/drivers/hwmon/pmbus/ucd9000.c > index f8017993e2b4..a15e6fe3e425 100644 > --- a/drivers/hwmon/pmbus/ucd9000.c > +++ b/drivers/hwmon/pmbus/ucd9000.c > @@ -621,7 +621,6 @@ static struct i2c_driver ucd9000_driver = { > .of_match_table = of_match_ptr(ucd9000_of_match), > }, > .probe_new = ucd9000_probe, > - .remove = pmbus_do_remove, > .id_table = ucd9000_id, > }; > > diff --git a/drivers/hwmon/pmbus/ucd9200.c b/drivers/hwmon/pmbus/ucd9200.c > index e111e25e1619..47cc7ca9d329 100644 > --- a/drivers/hwmon/pmbus/ucd9200.c > +++ b/drivers/hwmon/pmbus/ucd9200.c > @@ -201,7 +201,6 @@ static struct i2c_driver ucd9200_driver = { > .of_match_table = of_match_ptr(ucd9200_of_match), > }, > .probe_new = ucd9200_probe, > - .remove = pmbus_do_remove, > .id_table = ucd9200_id, > }; > > diff --git a/drivers/hwmon/pmbus/xdpe12284.c b/drivers/hwmon/pmbus/xdpe12284.c > index c95ac934fde4..f8bc0f41cd5f 100644 > --- a/drivers/hwmon/pmbus/xdpe12284.c > +++ b/drivers/hwmon/pmbus/xdpe12284.c > @@ -160,7 +160,6 @@ static struct i2c_driver xdpe122_driver = { > .of_match_table = of_match_ptr(xdpe122_of_match), > }, > .probe_new = xdpe122_probe, > - .remove = pmbus_do_remove, > .id_table = xdpe122_id, > }; > > diff --git a/drivers/hwmon/pmbus/zl6100.c b/drivers/hwmon/pmbus/zl6100.c > index e8bda340482b..69120ca7aaa8 100644 > --- a/drivers/hwmon/pmbus/zl6100.c > +++ b/drivers/hwmon/pmbus/zl6100.c > @@ -396,7 +396,6 @@ static struct i2c_driver zl6100_driver = { > .name = "zl6100", > }, > .probe_new = zl6100_probe, > - .remove = pmbus_do_remove, > .id_table = zl6100_id, > }; >