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