]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ptp: ocp: fix resource freeing order
authorVadim Fedorenko <vadim.fedorenko@linux.dev>
Mon, 8 Jun 2026 15:59:52 +0000 (15:59 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 10 Jun 2026 02:26:56 +0000 (19:26 -0700)
commit627366c51145a07f675b1800fb5ea2ec960bd900
tree990be156d92cb46ee485603636a17cde5e1fb1c9
parent7f2fcff15e99bb852f6967396ed12b38376e2c8d
ptp: ocp: fix resource freeing order

Commit a60fc3294a37 ("ptp: rework ptp_clock_unregister() to disable
events") added a call to ptp_disable_all_events() which changes the
configuration of pins if they support EXTTS events. In ptp_ocp_detach()
pins resources are freed before ptp_clock_unregister() and it leads to
use-after-free during driver removal. Fix it by changing the order of
free/unregister calls. To avoid irq handler running on the other core
while ptp device unregistering, call synchronize_irq() after HW is
configured to stop producing irqs and no irqs are in-flight.

Fixes: a60fc3294a37 ("ptp: rework ptp_clock_unregister() to disable events")
Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://patch.msgid.link/20260608155952.240304-1-vadim.fedorenko@linux.dev
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/ptp/ptp_ocp.c