> -----Original Message-----
> From: Kubalewski, Arkadiusz <[email protected]>
> Sent: Monday, June 8, 2026 6:45 PM
> To: Nitka, Grzegorz <[email protected]>; [email protected]
> Cc: [email protected]; [email protected]; Oros, Petr
> <[email protected]>; [email protected]; [email protected];
> Kitszel, Przemyslaw <[email protected]>; Nguyen, Anthony L
> <[email protected]>; [email protected]; Vecera,
> Ivan <[email protected]>; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected]
> Subject: RE: [PATCH v14 net-next 04/13] dpll: send delete notification before
> unregister in on-pin rollback
> 
> >From: Nitka, Grzegorz <[email protected]>
> >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 <[email protected]>
> >---
> > 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?
> 

Yes, I think this patch is a good candidate to squash with 7/13 (with
proper commit message edit).
Same 'Fixes' tag and both touch notifications fix.

Thanks

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

Reply via email to