Re: [PATCH v2 06/11] driver core: fw_devlink: Allow marking a fwnode link as being part of a cycle

From: Saravana Kannan
Date: Sat Jan 28 2023 - 02:35:24 EST


On Fri, Jan 27, 2023 at 1:33 AM Andy Shevchenko
<andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
>
> On Thu, Jan 26, 2023 at 04:11:33PM -0800, Saravana Kannan wrote:
> > To improve detection and handling of dependency cycles, we need to be
> > able to mark fwnode links as being part of cycles. fwnode links marked
> > as being part of a cycle should not block their consumers from probing.
>
> ...
>
> > + list_for_each_entry(link, &fwnode->suppliers, c_hook) {
> > + if (link->flags & FWLINK_FLAG_CYCLE)
> > + continue;
> > + return link->supplier;
>
> Hmm...

Thanks!

>
> if (!(link->flags & FWLINK_FLAG_CYCLE))
> return link->supplier;
>
> ?
>
> > + }
> > +
> > + return NULL;
>
> ...
>
> > - if (dev->fwnode && !list_empty(&dev->fwnode->suppliers) &&
> > - !fw_devlink_is_permissive()) {
> > - sup_fw = list_first_entry(&dev->fwnode->suppliers,
> > - struct fwnode_link,
> > - c_hook)->supplier;
> > + sup_fw = fwnode_links_check_suppliers(dev->fwnode);
>
> dev_fwnode() ?
>
> ...
>
> > - val = !list_empty(&dev->fwnode->suppliers);
> > + mutex_lock(&fwnode_link_lock);
> > + val = !!fwnode_links_check_suppliers(dev->fwnode);
>
> Ditto?

Similar response as Patch 1 and Patch 4.


-Saravana