Hi Serge, On Fr, 2022-06-24 at 17:18 +0300, Serge Semin wrote: > Most likely due to copy-paste mistake the device managed version of the > denoted reset control getter has been implemented with invalid semantic, > which can be immediately spotted by having "WARN_ON(shared && acquired)" > warning in the system log as soon as the method is called. Anyway let's > fix it by altering the boolean arguments passed to the > __devm_reset_control_bulk_get() method from > - shared = true, optional = false, acquired = true > to > + shared = false, optional = true, acquired = true > That's what they were supposed to be in the first place (see the non-devm > version of the same method: reset_control_bulk_get_optional_exclusive()). > > Fixes: 48d71395896d ("reset: Add reset_control_bulk API") > Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx> > > --- > > Changelog v4: > - This is a new patch added on v4 lap of the series. > --- > include/linux/reset.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/reset.h b/include/linux/reset.h > index 8a21b5756c3e..514ddf003efc 100644 > --- a/include/linux/reset.h > +++ b/include/linux/reset.h > @@ -731,7 +731,7 @@ static inline int __must_check > devm_reset_control_bulk_get_optional_exclusive(struct device *dev, int num_rstcs, > struct reset_control_bulk_data *rstcs) > { > - return __devm_reset_control_bulk_get(dev, num_rstcs, rstcs, true, false, true); > + return __devm_reset_control_bulk_get(dev, num_rstcs, rstcs, false, true, true); > } You are right, thank you. I'll take this as a sign that the internal functions should probably switch from collecting ever more boolean arguments to a flags parameter, similar to enum gpiod_flags. I'll pick this up separately into the reset/fixes branch. regards Philipp