From: Vadim Fedorenko <vadim.fedorenko@linux.dev>
To: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>,
Richard Cochran <richardcochran@gmail.com>
Cc: Ajay Kaher <ajay.kaher@broadcom.com>,
Alexey Makhalov <alexey.makhalov@broadcom.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>,
Clark Wang <xiaoning.wang@nxp.com>,
"David S. Miller" <davem@davemloft.net>,
David Woodhouse <dwmw2@infradead.org>,
Eric Dumazet <edumazet@google.com>,
imx@lists.linux.dev, Jakub Kicinski <kuba@kernel.org>,
Jonathan Lemon <jonathan.lemon@gmail.com>,
netdev@vger.kernel.org, Nick Shi <nick.shi@broadcom.com>,
Paolo Abeni <pabeni@redhat.com>,
Sven Schnelle <svens@linux.ibm.com>,
Vladimir Oltean <vladimir.oltean@nxp.com>,
Wei Fang <wei.fang@nxp.com>, Yangbo Lu <yangbo.lu@nxp.com>
Subject: Re: [PATCH net-next 2/2] ptp: rework ptp_clock_unregister() to disable events
Date: Tue, 16 Sep 2025 14:02:56 +0100 [thread overview]
Message-ID: <9d197d92-3990-4e48-aa35-87a51eccb87a@linux.dev> (raw)
In-Reply-To: <E1uyAP7-00000005lGq-3FqI@rmk-PC.armlinux.org.uk>
On 15/09/2025 15:42, Russell King (Oracle) wrote:
> the ordering of ptp_clock_unregister() is not ideal, as the chardev
> remains published while state is being torn down. There is also no
> cleanup of enabled pin settings, which means enabled events can
> still forward into the core.
>
> Rework the ordering of cleanup in ptp_clock_unregister() so that we
> unpublish the posix clock (and user chardev), disable any pins that
> have events enabled, and then clean up the aux work and PPS source.
>
> This avoids potential use-after-free and races in PTP clock driver
> teardown.
>
> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
> ---
> drivers/ptp/ptp_chardev.c | 13 +++++++++++++
> drivers/ptp/ptp_clock.c | 17 ++++++++++++++++-
> drivers/ptp/ptp_private.h | 2 ++
> 3 files changed, 31 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/ptp/ptp_chardev.c b/drivers/ptp/ptp_chardev.c
> index eb4f6d1b1460..640a98f17739 100644
> --- a/drivers/ptp/ptp_chardev.c
> +++ b/drivers/ptp/ptp_chardev.c
> @@ -47,6 +47,19 @@ static int ptp_disable_pinfunc(struct ptp_clock_info *ops,
> return err;
> }
>
> +void ptp_disable_all_pins(struct ptp_clock *ptp)
> +{
> + struct ptp_clock_info *info = ptp->info;
> + unsigned int i;
> +
> + mutex_lock(&ptp->pincfg_mux);
> + for (i = 0; i < info->n_pins; i++)
> + if (info->pin_config[i].func != PTP_PF_NONE)
> + ptp_disable_pinfunc(info, info->pin_config[i].func,
> + info->pin_config[i].chan);
> + mutex_unlock(&ptp->pincfg_mux);
> +}
> +
This part is questionable. We do have devices which have PPS out enabled
by default. The driver reads pins configuration from the HW during PTP
init phase and sets up proper function for pin in ptp_info::pin_config.
With this patch applied these pins have PEROUT function disabled on
shutdown and in case of kexec'ing into a new kernel the PPS out feature
needs to be manually enabled, and it breaks expected behavior.
Why do you need to clear up configured PEROUT function?
next prev parent reply other threads:[~2025-09-16 13:03 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-15 14:41 [PATCH net-next 0/2] ptp: safely cleanup when unregistering a PTP clock Russell King (Oracle)
2025-09-15 14:42 ` [PATCH net-next 1/2] ptp: describe the two disables in ptp_set_pinfunc() Russell King (Oracle)
2025-09-16 10:37 ` Vladimir Oltean
2025-09-16 12:44 ` Vadim Fedorenko
2025-09-15 14:42 ` [PATCH net-next 2/2] ptp: rework ptp_clock_unregister() to disable events Russell King (Oracle)
2025-09-16 9:03 ` Wei Fang
2025-09-16 13:38 ` Russell King (Oracle)
2025-09-16 14:38 ` Andrew Lunn
2025-09-16 13:02 ` Vadim Fedorenko [this message]
2025-09-16 15:45 ` Russell King (Oracle)
2025-09-16 16:20 ` Vadim Fedorenko
2025-09-16 19:46 ` Russell King (Oracle)
2025-09-16 21:22 ` Russell King (Oracle)
2025-09-16 8:37 ` [PATCH net-next 0/2] ptp: safely cleanup when unregistering a PTP clock Wei Fang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9d197d92-3990-4e48-aa35-87a51eccb87a@linux.dev \
--to=vadim.fedorenko@linux.dev \
--cc=ajay.kaher@broadcom.com \
--cc=alexey.makhalov@broadcom.com \
--cc=andrew+netdev@lunn.ch \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=davem@davemloft.net \
--cc=dwmw2@infradead.org \
--cc=edumazet@google.com \
--cc=imx@lists.linux.dev \
--cc=jonathan.lemon@gmail.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nick.shi@broadcom.com \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.com \
--cc=rmk+kernel@armlinux.org.uk \
--cc=svens@linux.ibm.com \
--cc=vladimir.oltean@nxp.com \
--cc=wei.fang@nxp.com \
--cc=xiaoning.wang@nxp.com \
--cc=yangbo.lu@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).