Hey, On Tue, 28 Sep 2021, Takashi Iwai wrote: > On Wed, 22 Sep 2021 10:54:32 +0200, Kai Vehmanen wrote: > > --- a/drivers/base/component.c > > +++ b/drivers/base/component.c > > @@ -246,7 +246,7 @@ static int try_to_bring_up_master(struct master *master, > > return 0; > > } > > > > - if (!devres_open_group(master->parent, NULL, GFP_KERNEL)) > > + if (!devres_open_group(master->parent, master, GFP_KERNEL)) > > return -ENOMEM; > > > > /* Found all components */ > > @@ -258,6 +258,7 @@ static int try_to_bring_up_master(struct master *master, > > return ret; > > } > > > > + devres_close_group(master->parent, NULL); > > Just wondering whether we should pass master here instead of NULL, > too? I wondered about this as well. Functionally it should be equivalent as passing NULL will apply the operation to the latest added group. I noted the practise of passing NULL has been followed in the existing code when referring to groups created within the same function. E.g. » if (!devres_open_group(component->dev, component, GFP_KERNEL)) { [...] » ret = component->ops->bind(component->dev, master->parent, data); » if (!ret) { » » component->bound = true; » » /* » » * Close the component device's group so that resources » » * allocated in the binding are encapsulated for removal » » * at unbind. Remove the group on the DRM device as we » » * can clean those resources up independently. » » */ » » devres_close_group(component->dev, NULL); ... so I followed this existing practise. I can change and send a V3 if the explicit parameter is preferred. Br, Kai