Hi François,
On 12/2/25 7:39 PM, Francois Berder wrote:
If func->pins could not be allocated, one must also free
func variable that was allocated previously.
Well.... devm_* functions should take care of this when the device is
removed (or probe failed), but if and only if CONFIG_DEVRES is enabled.
However, in that case, this code may be executed outside of a probe
scenario I guess (it is called in set_state() callback from the pinctrl
device). This thus makes sense to me here.
Reviewed-by: Quentin Schulz <[email protected]>
I'm also wondering if we shouldn't check the return value of
single_configure_pins/bits in set_state instead of always returning 0?
We probably need to devm_kfree a bunch of other devm_ allocations as well?
I see a loop in single_add_gpio_func() we should probably unwind if
there's a devm_kzalloc which fails?
Maybe we need a .remove callback where we devm_kfree all of functions
and gpiofuncs lists from single_priv, in case DEVRES isn't actually set?
Cheers,
Quentin