* [PATCH net-next v2] net: fec: Propagate PTP initialization errors
@ 2026-09-03 9:24 phucduc.bui
2026-09-03 9:29 ` Wei Fang
0 siblings, 1 reply; 9+ messages in thread
From: phucduc.bui @ 2026-09-03 9:24 UTC (permalink / raw)
To: Wei Fang, Frank Li, Shenwei Wang
Cc: Andrew Lunn, davem, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Richard Cochran, Fugang Duan, Anson Huang, Stephen Boyd, imx,
linux-kernel, netdev, bui duc phuc
From: bui duc phuc <phucduc.bui@gmail.com>
Change fec_ptp_init() to return an error code instead of silently
ignoring failures during PTP initialization.
The PPS IRQ is not required for the FEC/PTP functionality, so its
absence should not make the probe fail. However, an unavailable
optional IRQ should be distinguished from an actual error returned
during the IRQ lookup.
If a platform does not support the PPS IRQ, it can omit the IRQ from
its device tree and the optional lookup will return -ENXIO. Propagate
other errors from the IRQ lookup instead of silently ignoring them.
Also propagate failures from devm_request_irq() and ptp_clock_register().
Update the function declaration in fec.h accordingly.
Found by manual code inspection.
Fixes: b86bcb299092 ("net: fec_ptp: Use platform_get_irq_xxx_optional() to avoid error message")
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
---
Link v1:
https://lore.kernel.org/all/20260820111416.97917-1-phucduc.bui@gmail.com/
Changes in v2:
- Squash the two patches into one.
- Add error handling for platform_get_irq_byname_optional().
- Fix error handling for ptp_clock_register().
drivers/net/ethernet/freescale/fec.h | 2 +-
drivers/net/ethernet/freescale/fec_main.c | 7 +++++--
drivers/net/ethernet/freescale/fec_ptp.c | 22 ++++++++++++++--------
3 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h
index 7176803146f3..8831da37326b 100644
--- a/drivers/net/ethernet/freescale/fec.h
+++ b/drivers/net/ethernet/freescale/fec.h
@@ -692,7 +692,7 @@ struct fec_enet_private {
u64 ethtool_stats[];
};
-void fec_ptp_init(struct platform_device *pdev, int irq_idx);
+int fec_ptp_init(struct platform_device *pdev, int irq_idx);
void fec_ptp_restore_state(struct fec_enet_private *fep);
void fec_ptp_save_state(struct fec_enet_private *fep);
void fec_ptp_stop(struct platform_device *pdev);
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 794ec427b0ee..c6e29b5c2abb 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -5384,8 +5384,11 @@ fec_probe(struct platform_device *pdev)
goto failed_reset;
irq_cnt = fec_enet_get_irq_cnt(pdev);
- if (fep->bufdesc_ex)
- fec_ptp_init(pdev, irq_cnt);
+ if (fep->bufdesc_ex) {
+ ret = fec_ptp_init(pdev, irq_cnt);
+ if (ret)
+ goto failed_reset;
+ }
ret = fec_enet_init(ndev);
if (ret)
diff --git a/drivers/net/ethernet/freescale/fec_ptp.c b/drivers/net/ethernet/freescale/fec_ptp.c
index 56801c2009d5..557a76797eba 100644
--- a/drivers/net/ethernet/freescale/fec_ptp.c
+++ b/drivers/net/ethernet/freescale/fec_ptp.c
@@ -736,7 +736,7 @@ static irqreturn_t fec_pps_interrupt(int irq, void *dev_id)
* cyclecounter init routine and exits.
*/
-void fec_ptp_init(struct platform_device *pdev, int irq_idx)
+int fec_ptp_init(struct platform_device *pdev, int irq_idx)
{
struct net_device *ndev = platform_get_drvdata(pdev);
struct fec_enet_private *fep = netdev_priv(ndev);
@@ -779,26 +779,32 @@ void fec_ptp_init(struct platform_device *pdev, int irq_idx)
HRTIMER_MODE_REL);
irq = platform_get_irq_byname_optional(pdev, "pps");
- if (irq < 0)
+ if (irq < 0 && irq != -ENXIO)
+ return irq;
+ if (irq == -ENXIO) {
irq = platform_get_irq_optional(pdev, irq_idx);
- /* Failure to get an irq is not fatal,
- * only the PTP_CLOCK_PPS clock events should stop
- */
- if (irq >= 0) {
+ if (irq < 0 && irq != -ENXIO)
+ return irq;
+ }
+
+ if (irq > 0) {
ret = devm_request_irq(&pdev->dev, irq, fec_pps_interrupt,
0, pdev->name, ndev);
if (ret < 0)
- dev_warn(&pdev->dev, "request for pps irq failed(%d)\n",
- ret);
+ return ret;
}
fep->ptp_clock = ptp_clock_register(&fep->ptp_caps, &pdev->dev);
if (IS_ERR(fep->ptp_clock)) {
+ ret = PTR_ERR(fep->ptp_clock);
fep->ptp_clock = NULL;
dev_err(&pdev->dev, "ptp_clock_register failed\n");
+ return ret;
}
schedule_delayed_work(&fep->time_keep, HZ);
+
+ return 0;
}
void fec_ptp_save_state(struct fec_enet_private *fep)
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* RE: [PATCH net-next v2] net: fec: Propagate PTP initialization errors
2026-09-03 9:24 [PATCH net-next v2] net: fec: Propagate PTP initialization errors phucduc.bui
@ 2026-09-03 9:29 ` Wei Fang
2026-09-03 10:45 ` Bui Duc Phuc
2026-09-03 14:37 ` Andrew Lunn
0 siblings, 2 replies; 9+ messages in thread
From: Wei Fang @ 2026-09-03 9:29 UTC (permalink / raw)
To: phucduc.bui@gmail.com, Frank Li, Shenwei Wang
Cc: Andrew Lunn, davem@davemloft.net, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Richard Cochran, Fugang Duan, Anson Huang,
Stephen Boyd, imx@lists.linux.dev, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org
> Change fec_ptp_init() to return an error code instead of silently
> ignoring failures during PTP initialization.
>
> The PPS IRQ is not required for the FEC/PTP functionality, so its
> absence should not make the probe fail. However, an unavailable
> optional IRQ should be distinguished from an actual error returned
> during the IRQ lookup.
>
> If a platform does not support the PPS IRQ, it can omit the IRQ from
> its device tree and the optional lookup will return -ENXIO. Propagate
> other errors from the IRQ lookup instead of silently ignoring them.
>
> Also propagate failures from devm_request_irq() and ptp_clock_register().
>
> Update the function declaration in fec.h accordingly.
>
> Found by manual code inspection.
>
> Fixes: b86bcb299092 ("net: fec_ptp: Use platform_get_irq_xxx_optional() to
> avoid error message")
If this is a bug fix, it should target to net tree rather than net-next.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next v2] net: fec: Propagate PTP initialization errors
2026-09-03 9:29 ` Wei Fang
@ 2026-09-03 10:45 ` Bui Duc Phuc
2026-09-04 1:52 ` Wei Fang
2026-09-03 14:37 ` Andrew Lunn
1 sibling, 1 reply; 9+ messages in thread
From: Bui Duc Phuc @ 2026-09-03 10:45 UTC (permalink / raw)
To: Wei Fang
Cc: Frank Li, Shenwei Wang, Andrew Lunn, davem@davemloft.net,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
Anson Huang, Stephen Boyd, imx@lists.linux.dev,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Hi Wei,
Thanks for the feedback.
> >
> > Fixes: b86bcb299092 ("net: fec_ptp: Use platform_get_irq_xxx_optional() to
> > avoid error message")
>
> If this is a bug fix, it should target to net tree rather than net-next.
>
On a previous (different) patch with a Fixes tag, I was advised to
target 'net-next' instead,
so I submitted this one to 'net-next' first to be safe.
If you think this fix for commit b86bcb299092 belongs in 'net', please
let me know and
I will resubmit it as a v2 targeting the 'net' tree.
Best regards,
Phuc
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next v2] net: fec: Propagate PTP initialization errors
2026-09-03 9:29 ` Wei Fang
2026-09-03 10:45 ` Bui Duc Phuc
@ 2026-09-03 14:37 ` Andrew Lunn
1 sibling, 0 replies; 9+ messages in thread
From: Andrew Lunn @ 2026-09-03 14:37 UTC (permalink / raw)
To: Wei Fang
Cc: phucduc.bui@gmail.com, Frank Li, Shenwei Wang, Andrew Lunn,
davem@davemloft.net, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Richard Cochran, Fugang Duan, Anson Huang, Stephen Boyd,
imx@lists.linux.dev, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org
On Thu, Sep 03, 2026 at 09:29:11AM +0000, Wei Fang wrote:
> > Change fec_ptp_init() to return an error code instead of silently
> > ignoring failures during PTP initialization.
> >
> > The PPS IRQ is not required for the FEC/PTP functionality, so its
> > absence should not make the probe fail. However, an unavailable
> > optional IRQ should be distinguished from an actual error returned
> > during the IRQ lookup.
> >
> > If a platform does not support the PPS IRQ, it can omit the IRQ from
> > its device tree and the optional lookup will return -ENXIO. Propagate
> > other errors from the IRQ lookup instead of silently ignoring them.
> >
> > Also propagate failures from devm_request_irq() and ptp_clock_register().
> >
> > Update the function declaration in fec.h accordingly.
> >
> > Found by manual code inspection.
> >
> > Fixes: b86bcb299092 ("net: fec_ptp: Use platform_get_irq_xxx_optional() to
> > avoid error message")
>
> If this is a bug fix, it should target to net tree rather than net-next.
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
Stable rules say it must be a bug that bothers people. Does this
bother you?
Andrew
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH net-next v2] net: fec: Propagate PTP initialization errors
2026-09-03 10:45 ` Bui Duc Phuc
@ 2026-09-04 1:52 ` Wei Fang
2026-09-04 3:03 ` Bui Duc Phuc
0 siblings, 1 reply; 9+ messages in thread
From: Wei Fang @ 2026-09-04 1:52 UTC (permalink / raw)
To: Bui Duc Phuc
Cc: Frank Li, Shenwei Wang, Andrew Lunn, davem@davemloft.net,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
Anson Huang, Stephen Boyd, imx@lists.linux.dev,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
> > > Fixes: b86bcb299092 ("net: fec_ptp: Use platform_get_irq_xxx_optional() to
> > > avoid error message")
> >
> > If this is a bug fix, it should target to net tree rather than net-next.
> >
>
>
> On a previous (different) patch with a Fixes tag, I was advised to
> target 'net-next' instead,
> so I submitted this one to 'net-next' first to be safe.
>
> If you think this fix for commit b86bcb299092 belongs in 'net', please
> let me know and
> I will resubmit it as a v2 targeting the 'net' tree.
>
Is this a real bug that bothers people? or just an improvement?
For real bug, I think the patch should target to net tree.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next v2] net: fec: Propagate PTP initialization errors
2026-09-04 1:52 ` Wei Fang
@ 2026-09-04 3:03 ` Bui Duc Phuc
2026-09-04 3:23 ` Wei Fang
2026-09-04 12:45 ` Andrew Lunn
0 siblings, 2 replies; 9+ messages in thread
From: Bui Duc Phuc @ 2026-09-04 3:03 UTC (permalink / raw)
To: Wei Fang
Cc: Frank Li, Shenwei Wang, Andrew Lunn, davem@davemloft.net,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
Anson Huang, Stephen Boyd, imx@lists.linux.dev,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
>
> Is this a real bug that bothers people? or just an improvement?
> For real bug, I think the patch should target to net tree.
>
I consider this a real bug rather than just an improvement, for two reasons.
First, commit b86bcb299092 was a bug fix and was also backported to stable.
This patch fixes the error handling in that change, which incorrectly
treats errors
other than -ENXIO as an absent optional IRQ. Therefore, I believe this
fix is also
relevant to stable kernels.
Second, the current implementation can silently ignore -EPROBE_DEFER and
continue probing instead of deferring. On an affected platform, this
can result in
the PPS IRQ not being set up, causing the corresponding PPS functionality to be
unavailable to the user.
I don't have hardware to reproduce this specific case, so the issue
was found by
code inspection rather than a user report.
If you think this fix is appropriate for the net tree, I'm happy to
retarget and resend it there.
Best regards,
Phuc
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH net-next v2] net: fec: Propagate PTP initialization errors
2026-09-04 3:03 ` Bui Duc Phuc
@ 2026-09-04 3:23 ` Wei Fang
2026-09-04 9:16 ` Bui Duc Phuc
2026-09-04 12:45 ` Andrew Lunn
1 sibling, 1 reply; 9+ messages in thread
From: Wei Fang @ 2026-09-04 3:23 UTC (permalink / raw)
To: Bui Duc Phuc
Cc: Frank Li, Shenwei Wang, Andrew Lunn, davem@davemloft.net,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
Anson Huang, Stephen Boyd, imx@lists.linux.dev,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
> > Is this a real bug that bothers people? or just an improvement?
> > For real bug, I think the patch should target to net tree.
> >
>
> I consider this a real bug rather than just an improvement, for two reasons.
>
> First, commit b86bcb299092 was a bug fix and was also backported to stable.
> This patch fixes the error handling in that change, which incorrectly
> treats errors
> other than -ENXIO as an absent optional IRQ. Therefore, I believe this
> fix is also
> relevant to stable kernels.
>
> Second, the current implementation can silently ignore -EPROBE_DEFER and
> continue probing instead of deferring. On an affected platform, this
> can result in
> the PPS IRQ not being set up, causing the corresponding PPS functionality to be
> unavailable to the user.
>
> I don't have hardware to reproduce this specific case, so the issue
> was found by
> code inspection rather than a user report.
> If you think this fix is appropriate for the net tree, I'm happy to
> retarget and resend it there.
>
It is a potential issue, so the target tree should be net.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next v2] net: fec: Propagate PTP initialization errors
2026-09-04 3:23 ` Wei Fang
@ 2026-09-04 9:16 ` Bui Duc Phuc
0 siblings, 0 replies; 9+ messages in thread
From: Bui Duc Phuc @ 2026-09-04 9:16 UTC (permalink / raw)
To: Wei Fang
Cc: Frank Li, Shenwei Wang, Andrew Lunn, davem@davemloft.net,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
Anson Huang, Stephen Boyd, imx@lists.linux.dev,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Hi Wei,
Thanks for the clarification.
>
> It is a potential issue, so the target tree should be net.
>
I will retarget the patch to the net tree and resend it.
Best regards,
Phuc
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next v2] net: fec: Propagate PTP initialization errors
2026-09-04 3:03 ` Bui Duc Phuc
2026-09-04 3:23 ` Wei Fang
@ 2026-09-04 12:45 ` Andrew Lunn
1 sibling, 0 replies; 9+ messages in thread
From: Andrew Lunn @ 2026-09-04 12:45 UTC (permalink / raw)
To: Bui Duc Phuc
Cc: Wei Fang, Frank Li, Shenwei Wang, Andrew Lunn,
davem@davemloft.net, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Richard Cochran, Anson Huang, Stephen Boyd, imx@lists.linux.dev,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
> Second, the current implementation can silently ignore -EPROBE_DEFER and
> continue probing instead of deferring.
This is a stronger reason. You should mention it in the commit message
as part of your justification for net, rather than net-next.
Andrew
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-09-04 12:45 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-03 9:24 [PATCH net-next v2] net: fec: Propagate PTP initialization errors phucduc.bui
2026-09-03 9:29 ` Wei Fang
2026-09-03 10:45 ` Bui Duc Phuc
2026-09-04 1:52 ` Wei Fang
2026-09-04 3:03 ` Bui Duc Phuc
2026-09-04 3:23 ` Wei Fang
2026-09-04 9:16 ` Bui Duc Phuc
2026-09-04 12:45 ` Andrew Lunn
2026-09-03 14:37 ` Andrew Lunn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox