[PATCH v2] component: do not leave master devres group open after bind
Kai Vehmanen
kai.vehmanen at linux.intel.com
Tue Sep 28 10:45:01 UTC 2021
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
More information about the dri-devel
mailing list