Message ID | fd277a708ede3882d7df6831f02d2e3c0cb813b8.1644781718.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | hwmon: peci: Use devm_delayed_work_autocancel() to simplify code | expand |
On Sun, 2022-02-13 at 20:48 +0100, Christophe JAILLET wrote: > Use devm_delayed_work_autocancel() instead of hand writing it. This is > less verbose and saves a few lines of code. > > devm_delayed_work_autocancel() uses devm_add_action() instead of > devm_add_action_or_reset(). This is fine, because if the underlying memory > allocation fails, no work has been scheduled yet. So there is nothing to > undo. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Reviewed-by: Iwona Winiarska <iwona.winiarska@intel.com> Thanks -Iwona > --- > drivers/hwmon/peci/dimmtemp.c | 13 +++---------- > 1 file changed, 3 insertions(+), 10 deletions(-) > > diff --git a/drivers/hwmon/peci/dimmtemp.c b/drivers/hwmon/peci/dimmtemp.c > index c8222354c005..96b9919db357 100644 > --- a/drivers/hwmon/peci/dimmtemp.c > +++ b/drivers/hwmon/peci/dimmtemp.c > @@ -4,6 +4,7 @@ > #include <linux/auxiliary_bus.h> > #include <linux/bitfield.h> > #include <linux/bitops.h> > +#include <linux/devm-helpers.h> > #include <linux/hwmon.h> > #include <linux/jiffies.h> > #include <linux/module.h> > @@ -378,13 +379,6 @@ static void create_dimm_temp_info_delayed(struct > work_struct *work) > dev_err(priv->dev, "Failed to populate DIMM temp info\n"); > } > > -static void remove_delayed_work(void *_priv) > -{ > - struct peci_dimmtemp *priv = _priv; > - > - cancel_delayed_work_sync(&priv->detect_work); > -} > - > static int peci_dimmtemp_probe(struct auxiliary_device *adev, const struct > auxiliary_device_id *id) > { > struct device *dev = &adev->dev; > @@ -415,9 +409,8 @@ static int peci_dimmtemp_probe(struct auxiliary_device > *adev, const struct auxil > "Unexpected PECI revision %#x, some features may be > unavailable\n", > peci_dev->info.peci_revision); > > - INIT_DELAYED_WORK(&priv->detect_work, create_dimm_temp_info_delayed); > - > - ret = devm_add_action_or_reset(priv->dev, remove_delayed_work, priv); > + ret = devm_delayed_work_autocancel(priv->dev, &priv->detect_work, > + create_dimm_temp_info_delayed); > if (ret) > return ret; >
On Sun, Feb 13, 2022 at 08:48:53PM +0100, Christophe JAILLET wrote: > Use devm_delayed_work_autocancel() instead of hand writing it. This is > less verbose and saves a few lines of code. > > devm_delayed_work_autocancel() uses devm_add_action() instead of > devm_add_action_or_reset(). This is fine, because if the underlying memory > allocation fails, no work has been scheduled yet. So there is nothing to > undo. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > Reviewed-by: Iwona Winiarska <iwona.winiarska@intel.com> Aplied to hwmon-next. Thanks, Guenter
diff --git a/drivers/hwmon/peci/dimmtemp.c b/drivers/hwmon/peci/dimmtemp.c index c8222354c005..96b9919db357 100644 --- a/drivers/hwmon/peci/dimmtemp.c +++ b/drivers/hwmon/peci/dimmtemp.c @@ -4,6 +4,7 @@ #include <linux/auxiliary_bus.h> #include <linux/bitfield.h> #include <linux/bitops.h> +#include <linux/devm-helpers.h> #include <linux/hwmon.h> #include <linux/jiffies.h> #include <linux/module.h> @@ -378,13 +379,6 @@ static void create_dimm_temp_info_delayed(struct work_struct *work) dev_err(priv->dev, "Failed to populate DIMM temp info\n"); } -static void remove_delayed_work(void *_priv) -{ - struct peci_dimmtemp *priv = _priv; - - cancel_delayed_work_sync(&priv->detect_work); -} - static int peci_dimmtemp_probe(struct auxiliary_device *adev, const struct auxiliary_device_id *id) { struct device *dev = &adev->dev; @@ -415,9 +409,8 @@ static int peci_dimmtemp_probe(struct auxiliary_device *adev, const struct auxil "Unexpected PECI revision %#x, some features may be unavailable\n", peci_dev->info.peci_revision); - INIT_DELAYED_WORK(&priv->detect_work, create_dimm_temp_info_delayed); - - ret = devm_add_action_or_reset(priv->dev, remove_delayed_work, priv); + ret = devm_delayed_work_autocancel(priv->dev, &priv->detect_work, + create_dimm_temp_info_delayed); if (ret) return ret;
Use devm_delayed_work_autocancel() instead of hand writing it. This is less verbose and saves a few lines of code. devm_delayed_work_autocancel() uses devm_add_action() instead of devm_add_action_or_reset(). This is fine, because if the underlying memory allocation fails, no work has been scheduled yet. So there is nothing to undo. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- drivers/hwmon/peci/dimmtemp.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-)