On Fri, 2021-05-21 at 10:38 +0200, Bjørn Mork wrote: > Michael Walle <michael@xxxxxxxx> writes: > > > Am 2021-05-21 08:28, schrieb Matti Vaittinen: > > > Slightly simplify the devm_gpio_regmap_register() by using the > > > devm_add_action(). > > > > Hm, nice, but what bothers me a bit is that no other subsystem > > does it that way, eg. hwmon/hwmon.c or watchdog/watchdog_core.c. > > They also store just one pointer, thus could be simplified in the > > same way. What I don't know is if devm_add_action() was intended > > to be used this way. So I can't say much for this patch ;) > > There are some examples. Like: > > int devm_i2c_add_adapter(struct device *dev, struct i2c_adapter > *adapter) > { > int ret; > > ret = i2c_add_adapter(adapter); > if (ret) > return ret; > > return devm_add_action_or_reset(dev, devm_i2c_del_adapter, > adapter); > } > > > You should probably use the devm_add_action_or_reset() wrapper here > too, > catching the unlikely devm_add_action() alloc failure. > I was thinking of it but as the gpio registration succeeded I was thinking that we could go on with it - (which means we can proceed but the gpio is never released.) I am not sure how much difference it makes in the case of small alloc failure ;) But as it seems I am in any case re-spinning this I can change this to the devm_add_action_or_reset() and fail the gpio_regmap registration if alloc fails. Best Regards Matti Vaittinen