Re: [PATCH v2 06/11] driver core: fw_devlink: Allow marking a fwnode link as being part of a cycle
From: Andy Shevchenko
Date: Fri Jan 27 2023 - 04:34:16 EST
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...
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?
> + mutex_unlock(&fwnode_link_lock);
--
With Best Regards,
Andy Shevchenko