All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yanteng Si <si.yanteng@linux.dev>
To: "Alexis Lothoré" <alexis.lothore@bootlin.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Jose Abreu" <joabreu@synopsys.com>,
	"Andrew Lunn" <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Richard Cochran" <richardcochran@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Maxime Chevallier <maxime.chevallier@bootlin.com>,
	netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] net: stmmac: add explicit check and error on invalid PTP clock rate
Date: Mon, 26 May 2025 10:22:47 +0800	[thread overview]
Message-ID: <8f1928e5-472e-4140-875c-6b5743be8fd3@linux.dev> (raw)
In-Reply-To: <20250523-stmmac_tstamp_div-v1-1-bca8a5a3a477@bootlin.com>

在 5/23/25 7:46 PM, Alexis Lothoré 写道:
> While some platforms implementing dwmac open-code the clk_ptp_rate
> value, some others dynamically retrieve the value at runtime. If the
> retrieved value happens to be 0 for any reason, it will eventually
> propagate up to PTP initialization when bringing up the interface,
> leading to a divide by 0:
> 
>   Division by zero in kernel.
>   CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.30-00001-g48313bd5768a #22
>   Hardware name: STM32 (Device Tree Support)
>   Call trace:
>    unwind_backtrace from show_stack+0x18/0x1c
>    show_stack from dump_stack_lvl+0x6c/0x8c
>    dump_stack_lvl from Ldiv0_64+0x8/0x18
>    Ldiv0_64 from stmmac_init_tstamp_counter+0x190/0x1a4
>    stmmac_init_tstamp_counter from stmmac_hw_setup+0xc1c/0x111c
>    stmmac_hw_setup from __stmmac_open+0x18c/0x434
>    __stmmac_open from stmmac_open+0x3c/0xbc
>    stmmac_open from __dev_open+0xf4/0x1ac
>    __dev_open from __dev_change_flags+0x1cc/0x224
>    __dev_change_flags from dev_change_flags+0x24/0x60
>    dev_change_flags from ip_auto_config+0x2e8/0x11a0
>    ip_auto_config from do_one_initcall+0x84/0x33c
>    do_one_initcall from kernel_init_freeable+0x1b8/0x214
>    kernel_init_freeable from kernel_init+0x24/0x140
>    kernel_init from ret_from_fork+0x14/0x28
>   Exception stack(0xe0815fb0 to 0xe0815ff8)
> 
> Prevent this division by 0 by adding an explicit check and error log
> about the actual issue.

 From your description, I cannot determine the scope
of "some platforms". My point is: if there are only
a few platforms, can we find a way to handle this in
the directory of the corresponding platform?

And there need a Fixes tag.


Thanks,
Yanteng
> 
> Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
> ---
>   drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> index 918d7f2e8ba992208d7d6521a1e9dba01086058f..f68e3ece919cc88d0bf199a394bc7e44b5dee095 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> @@ -835,6 +835,11 @@ int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags)
>   	if (!(priv->dma_cap.time_stamp || priv->dma_cap.atime_stamp))
>   		return -EOPNOTSUPP;
>   
> +	if (!priv->plat->clk_ptp_rate) {
> +		netdev_err(priv->dev, "Invalid PTP clock rate");
> +		return -EINVAL;
> +	}
> +
>   	stmmac_config_hw_tstamping(priv, priv->ptpaddr, systime_flags);
>   	priv->systime_flags = systime_flags;
>   
> 
> ---
> base-commit: e0e2f78243385e7188a57fcfceb6a19f723f1dff
> change-id: 20250522-stmmac_tstamp_div-f55112f06029
> 
> Best regards,



  reply	other threads:[~2025-05-26  2:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-23 11:46 [PATCH] net: stmmac: add explicit check and error on invalid PTP clock rate Alexis Lothoré
2025-05-26  2:22 ` Yanteng Si [this message]
2025-05-26 14:42   ` Alexis Lothoré
2025-05-27  9:52     ` Yanteng Si

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=8f1928e5-472e-4140-875c-6b5743be8fd3@linux.dev \
    --to=si.yanteng@linux.dev \
    --cc=alexandre.torgue@foss.st.com \
    --cc=alexis.lothore@bootlin.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=joabreu@synopsys.com \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=maxime.chevallier@bootlin.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=richardcochran@gmail.com \
    --cc=thomas.petazzoni@bootlin.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.