RE: [PATCH net 1/2] net: fec_ptp: add clock rate zero check

From: Joakim Zhang
Date: Wed Jun 16 2021 - 07:40:36 EST



Hi Russell,

> -----Original Message-----
> From: Russell King <linux@xxxxxxxxxxxxxxx>
> Sent: 2021年6月16日 18:21
> To: Joakim Zhang <qiangqing.zhang@xxxxxxx>
> Cc: davem@xxxxxxxxxxxxx; kuba@xxxxxxxxxx; peppe.cavallaro@xxxxxx;
> alexandre.torgue@xxxxxxxxxxx; joabreu@xxxxxxxxxxxx;
> mcoquelin.stm32@xxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; linux-stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>
> Subject: Re: [PATCH net 1/2] net: fec_ptp: add clock rate zero check
>
> On Wed, Jun 16, 2021 at 05:14:25PM +0800, Joakim Zhang wrote:
> > From: Fugang Duan <fugang.duan@xxxxxxx>
> >
> > Add clock rate zero check to fix coverity issue of "divide by 0".
> >
> > Fixes: commit 85bd1798b24a ("net: fec: fix spin_lock dead lock")
> > Signed-off-by: Fugang Duan <fugang.duan@xxxxxxx>
> > Signed-off-by: Joakim Zhang <qiangqing.zhang@xxxxxxx>
> > ---
> > drivers/net/ethernet/freescale/fec_ptp.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/freescale/fec_ptp.c
> > b/drivers/net/ethernet/freescale/fec_ptp.c
> > index 1753807cbf97..7326a0612823 100644
> > --- a/drivers/net/ethernet/freescale/fec_ptp.c
> > +++ b/drivers/net/ethernet/freescale/fec_ptp.c
> > @@ -604,6 +604,10 @@ void fec_ptp_init(struct platform_device *pdev, int
> irq_idx)
> > fep->ptp_caps.enable = fec_ptp_enable;
> >
> > fep->cycle_speed = clk_get_rate(fep->clk_ptp);
> > + if (!fep->cycle_speed) {
> > + fep->cycle_speed = NSEC_PER_SEC;
> > + dev_err(&fep->pdev->dev, "clk_ptp clock rate is zero\n");
>
> If this is supposed to be an error message, it doesn't convey that something is
> really wrong to the user. Maybe something like this would be more meaningful
> to the user:
>
> "PTP clock rate should not be zero, using 1GHz instead. PTP
> clock may be unreliable.\n"
Make Sense.

> It may be appropriate not to publish PTP support for the interface if we don't
> have a valid clock rate, which is probably the safer approach and would
> probably make the problem more noticable to the end user so it gets fixed.

Do you mean that print an error message then return directly? It seems better.

if (!fep->cycle_speed) {
dev_err(&fep->pdev->dev, "PTP clock rate should not be zero!\n");
return;
}

Best Regards,
Joakim Zhang
> --
> RMK's Patch system:
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ar
> mlinux.org.uk%2Fdeveloper%2Fpatches%2F&amp;data=04%7C01%7Cqiangqin
> g.zhang%40nxp.com%7Cb3c85322e359446e4eee08d930b06701%7C686ea1d3
> bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637594356476903644%7CUnknow
> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1ha
> WwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=TH4fZJRu8Ii6w7y05N8CHWoQR
> R9OegsYB7VAwgSpTcU%3D&amp;reserved=0
> FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!