>From: Paolo Abeni <pabeni@xxxxxxxxxx> >Sent: Monday, June 12, 2023 9:25 AM > >On Sun, 2023-06-11 at 11:36 +0200, Jiri Pirko wrote: >> Fri, Jun 09, 2023 at 02:18:46PM CEST, arkadiusz.kubalewski@xxxxxxxxx >wrote: >> > From: Vadim Fedorenko <vadim.fedorenko@xxxxxxxxx> >> >> [...] >> >> > +int dpll_device_register(struct dpll_device *dpll, enum dpll_type >type, >> > + const struct dpll_device_ops *ops, void *priv) >> > +{ >> > + struct dpll_device_registration *reg; >> > + bool first_registration = false; >> > + >> > + if (WARN_ON(!ops)) >> > + return -EINVAL; >> > + if (WARN_ON(type < DPLL_TYPE_PPS || type > DPLL_TYPE_MAX)) >> > + return -EINVAL; >> > + >> > + mutex_lock(&dpll_lock); >> > + reg = dpll_device_registration_find(dpll, ops, priv); >> > + if (reg) { >> > + mutex_unlock(&dpll_lock); >> > + return -EEXIST; >> > + } >> > + >> > + reg = kzalloc(sizeof(*reg), GFP_KERNEL); >> > + if (!reg) { >> > + mutex_unlock(&dpll_lock); >> > + return -EEXIST; >> > + } >> > + reg->ops = ops; >> > + reg->priv = priv; >> > + dpll->type = type; >> > + first_registration = list_empty(&dpll->registration_list); >> > + list_add_tail(®->list, &dpll->registration_list); >> > + if (!first_registration) { >> > + mutex_unlock(&dpll_lock); >> > + return 0; >> > + } >> > + >> > + xa_set_mark(&dpll_device_xa, dpll->id, DPLL_REGISTERED); >> > + mutex_unlock(&dpll_lock); >> > + dpll_device_create_ntf(dpll); >> >> This function is introduced in the next patch. Breaks bissection. Make >> sure you can compile the code after every patch applied. > >WRT, I think the easiest way to solve the above is adding the function >call in the next patch. > >Cheers, > >Paolo Sure, will try to fix as suggested, but this will be much easier to do on final version of patches before sending. Thank you, Arkadiusz