Netdev List
 help / color / mirror / Atom feed
* [PATCH net] ptp: netc: skip PEROUT disable if channel is not enabled
@ 2026-08-11  8:36 wei.fang
  2026-08-17 20:00 ` patchwork-bot+netdevbpf
  0 siblings, 1 reply; 2+ messages in thread
From: wei.fang @ 2026-08-11  8:36 UTC (permalink / raw)
  To: xiaoning.wang, richardcochran, andrew+netdev, davem, edumazet,
	kuba, pabeni, Frank.Li
  Cc: wei.fang, imx, netdev, linux-kernel

From: Wei Fang <wei.fang@nxp.com>

When userspace calls ioctl(PTP_PEROUT_REQUEST) with period = 0 to disable
a PEROUT channel that is not enabled, the driver incorrectly enters the
disable path. Since the channel's struct netc_pp was previously zeroed,
pp->alarm_id evaluates to 0, causing priv->fs_alarm_bitmap &= ~BIT(0) to
silently revoke the alarm 0 allocation from whichever channel is actively
using it. This can cause two channels conflict over the same hardware
alarm configuration and corrupt their periodic output signals.

Therefore, guard the disable path with a check on pp->enabled and return
early if the channel is not enabled.

Fixes: 671e266835b8 ("ptp: netc: add periodic pulse output support")
Reported-by: Sashiko <sashiko-bot@kernel.org>
Closes: https://sashiko.dev/#/message/20260809031908.46EBF1F00A3A%40smtp.kernel.org
Signed-off-by: Wei Fang <wei.fang@nxp.com>
---
 drivers/ptp/ptp_netc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/ptp/ptp_netc.c b/drivers/ptp/ptp_netc.c
index 1c20d7efab92..59db08e189e6 100644
--- a/drivers/ptp/ptp_netc.c
+++ b/drivers/ptp/ptp_netc.c
@@ -482,6 +482,9 @@ static int net_timer_enable_perout(struct netc_timer *priv,
 
 		netc_timer_enable_periodic_pulse(priv, channel);
 	} else {
+		if (!pp->enabled)
+			goto unlock_spinlock;
+
 		netc_timer_disable_periodic_pulse(priv, channel);
 		priv->fs_alarm_bitmap &= ~BIT(pp->alarm_id);
 		memset(pp, 0, sizeof(*pp));
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH net] ptp: netc: skip PEROUT disable if channel is not enabled
  2026-08-11  8:36 [PATCH net] ptp: netc: skip PEROUT disable if channel is not enabled wei.fang
@ 2026-08-17 20:00 ` patchwork-bot+netdevbpf
  0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-08-17 20:00 UTC (permalink / raw)
  To: Wei Fang
  Cc: xiaoning.wang, richardcochran, andrew+netdev, davem, edumazet,
	kuba, pabeni, Frank.Li, wei.fang, imx, netdev, linux-kernel

Hello:

This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 11 Aug 2026 16:36:14 +0800 you wrote:
> From: Wei Fang <wei.fang@nxp.com>
> 
> When userspace calls ioctl(PTP_PEROUT_REQUEST) with period = 0 to disable
> a PEROUT channel that is not enabled, the driver incorrectly enters the
> disable path. Since the channel's struct netc_pp was previously zeroed,
> pp->alarm_id evaluates to 0, causing priv->fs_alarm_bitmap &= ~BIT(0) to
> silently revoke the alarm 0 allocation from whichever channel is actively
> using it. This can cause two channels conflict over the same hardware
> alarm configuration and corrupt their periodic output signals.
> 
> [...]

Here is the summary with links:
  - [net] ptp: netc: skip PEROUT disable if channel is not enabled
    https://git.kernel.org/netdev/net/c/273480bb836e

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-08-17 20:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-11  8:36 [PATCH net] ptp: netc: skip PEROUT disable if channel is not enabled wei.fang
2026-08-17 20:00 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox