Re: [PATCH] posix-clock: bind the device before the cdev is published
From: Thomas Gleixner
Date: Mon Nov 09 2026 - 11:45:24 EST
On Tue, Oct 27 2026 at 01:18, fangsz wrote:
>
> The window is small, but it is hit in practice once a driver registers
> and unregisters the PTP clock repeatedly, for example on every link up
> and down, while ptp4l keeps reopening the node:
>
> [ 50.048138] eth0: registered PTP clock
> [ 50.767426] ptp4l: refcount_t: underflow; use-after-free.
> [ 55.735110] eth0: Link is Down
> [ 55.816736] eth0: registered PTP clock
>
> The ordering was introduced by a33121e5487b, which added the
> get_device()/put_device() pair around clk->dev but left the assignment
> at the end of posix_clock_register(). Bind clk->dev before the character
> device is published and clear it again when cdev_device_add() fails, so
> that an open() racing with the registration always finds a valid device
> to take a reference on.
>
> Fixes: a33121e5487b ("ptp: fix the race between the release of ptp_clock and cdev")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: fangsz <315539811@xxxxxx>
'fagnsz ' does not qualify as a proper name identifying you. See
Documentation/process/
Also please analyze and address:
https://sashiko.dev/#/patchset/tencent_D7A5991BA49FFDC9706385B0D2BED254EF06@xxxxxx
Thanks,
tglx