RE: [PATCH v14 net-next 04/13] dpll: send delete notification before unregister in on-pin rollback

From: Kubalewski, Arkadiusz

Date: Mon Jun 08 2026 - 13:00:52 EST


>From: Nitka, Grzegorz <grzegorz.nitka@xxxxxxxxx>
>Sent: Sunday, June 7, 2026 8:31 PM
>
>The rollback path in dpll_pin_on_pin_register() called
>__dpll_pin_unregister() before dpll_pin_delete_ntf(). When the
>unregister dropped the pin's last DPLL reference it cleared the
>DPLL_REGISTERED mark in dpll_pin_xa, so the subsequent
>dpll_pin_event_send() failed dpll_pin_available() and aborted with
>-ENODEV. As a result userspace was never notified of the rollback
>deletion and remained out of sync with the kernel.
>
>Send the delete notification first, matching the order used by
>dpll_pin_unregister() and dpll_pin_on_pin_unregister().
>
>Fixes: 9d71b54b65b1 ("dpll: netlink: Add DPLL framework base functions")
>Signed-off-by: Grzegorz Nitka <grzegorz.nitka@xxxxxxxxx>
>---
> drivers/dpll/dpll_core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c
>index cea7e2be2cbc..80195f3a84f3 100644
>--- a/drivers/dpll/dpll_core.c
>+++ b/drivers/dpll/dpll_core.c
>@@ -1007,9 +1007,9 @@ int dpll_pin_on_pin_register(struct dpll_pin
>*parent, struct dpll_pin *pin,
> dpll_unregister:
> xa_for_each(&parent->dpll_refs, i, ref)
> if (i < stop) {
>+ dpll_pin_delete_ntf(pin);
> __dpll_pin_unregister(ref->dpll, pin, ops, priv,
> parent);
>- dpll_pin_delete_ntf(pin);

Hey Grzegorz,

Since patch 7/13 this is already part of __dpll_pin_unregister ?
The call should be removed at all? Please make sure all calls to
__dpll_pin_unregister(..) are aware of that, also maybe better to
put this all related to one patch?

> }
> dpll_xa_ref_pin_del(&pin->parent_refs, parent, ops, priv, pin);
> unlock:
>--
>2.39.3