Re: [PATCH 0/2 5.10] serial: 8250_dw: fix port leak on clock notifier failure
From: Sasha Levin
Date: Tue Sep 08 2026 - 19:06:11 EST
> Queued for 5.10, thanks.
I'm dropping these again...
The bug being fixed isn't reachable on 5.10. dw8250_probe() there ends the
clock notifier block with:
if (data->clk) {
err = clk_notifier_register(data->clk, &data->clk_notifier);
if (err)
dev_warn(p->dev, "Failed to set the clock notifier\n");
else
queue_work(system_unbound_wq, &data->clk_work);
}
platform_set_drvdata(pdev, data);
so a notifier registration failure warns and probe still returns 0. There is no
error return anywhere after serial8250_register_8250_port(), which is the
precondition 10fc708b4de7 ("serial: 8250_dw: unregister 8250 port if
clk_notifier_register() fails") describes when it says probe "returns the error
but leaves the 8250 port registered". No port is left behind on 5.10, so
there's nothing to unregister and no use after free.
What creates that path is patch 1/2, 57f83e5dd6a3 ("serial: 8250_dw: Use
dev_err_probe()"), which turns the warn into a return. That's a cleanup from
May 2022 with no Fixes tag and no stable Cc. It's in the base of 6.1 and newer,
which is why the fix is correct there, but 5.10 and 5.15 predate it and never
had the failing path. Taking the pair here would import the bug and its fix
together, and would also make a notifier registration failure fatal to probe on
a tree where it currently isn't, for hardware that works today.
Same reasoning applies to 5.15, so please don't send it there either.
--
Thanks,
Sasha