* [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814
@ 2025-10-21 13:20 Robert Marko
2025-10-21 13:32 ` Andrew Lunn
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Robert Marko @ 2025-10-21 13:20 UTC (permalink / raw)
To: daniel.machon, andrew, hkallweit1, linux, davem, edumazet, kuba,
pabeni, vadim.fedorenko, horatiu.vultur, netdev, linux-kernel
Cc: luka.perkov, Robert Marko
Currently, during the LAN8814 PTP probe shared->phydev is only set if PTP
clock gets actually set, otherwise the function will return before setting
it.
This is an issue as shared->phydev is unconditionally being used when IRQ
is being handled, especially in lan8814_gpio_process_cap and since it was
not set it will cause a NULL pointer exception and crash the kernel.
So, simply always set shared->phydev to avoid the NULL pointer exception.
Fixes: b3f1a08fcf0d ("net: phy: micrel: Add support for PTP_PF_EXTTS for lan8814")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
---
drivers/net/phy/micrel.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index 16855bf8c391..4929f9b81f54 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -4285,6 +4285,8 @@ static int __lan8814_ptp_probe_once(struct phy_device *phydev, char *pin_name,
{
struct lan8814_shared_priv *shared = phy_package_get_priv(phydev);
+ shared->phydev = phydev;
+
/* Initialise shared lock for clock*/
mutex_init(&shared->shared_lock);
@@ -4340,8 +4342,6 @@ static int __lan8814_ptp_probe_once(struct phy_device *phydev, char *pin_name,
phydev_dbg(phydev, "successfully registered ptp clock\n");
- shared->phydev = phydev;
-
/* The EP.4 is shared between all the PHYs in the package and also it
* can be accessed by any of the PHYs
*/
--
2.51.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814
2025-10-21 13:20 [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814 Robert Marko
@ 2025-10-21 13:32 ` Andrew Lunn
2025-10-22 7:19 ` Horatiu Vultur
2025-10-23 14:12 ` Jakub Kicinski
2025-10-23 14:30 ` patchwork-bot+netdevbpf
2 siblings, 1 reply; 6+ messages in thread
From: Andrew Lunn @ 2025-10-21 13:32 UTC (permalink / raw)
To: Robert Marko
Cc: daniel.machon, hkallweit1, linux, davem, edumazet, kuba, pabeni,
vadim.fedorenko, horatiu.vultur, netdev, linux-kernel,
luka.perkov
On Tue, Oct 21, 2025 at 03:20:26PM +0200, Robert Marko wrote:
> Currently, during the LAN8814 PTP probe shared->phydev is only set if PTP
> clock gets actually set, otherwise the function will return before setting
> it.
>
> This is an issue as shared->phydev is unconditionally being used when IRQ
> is being handled, especially in lan8814_gpio_process_cap and since it was
> not set it will cause a NULL pointer exception and crash the kernel.
>
> So, simply always set shared->phydev to avoid the NULL pointer exception.
>
> Fixes: b3f1a08fcf0d ("net: phy: micrel: Add support for PTP_PF_EXTTS for lan8814")
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Please could you look at how this patch and
[PATCH net-next v2] net: phy: micrel: Add support for non PTP SKUs for lan8814
work together. It might be this patch is not required because of
changes in that patch?
Thanks
Andrew
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814
2025-10-21 13:32 ` Andrew Lunn
@ 2025-10-22 7:19 ` Horatiu Vultur
0 siblings, 0 replies; 6+ messages in thread
From: Horatiu Vultur @ 2025-10-22 7:19 UTC (permalink / raw)
To: Andrew Lunn
Cc: Robert Marko, daniel.machon, hkallweit1, linux, davem, edumazet,
kuba, pabeni, vadim.fedorenko, netdev, linux-kernel, luka.perkov
The 10/21/2025 15:32, Andrew Lunn wrote:
Hi,
>
> On Tue, Oct 21, 2025 at 03:20:26PM +0200, Robert Marko wrote:
> > Currently, during the LAN8814 PTP probe shared->phydev is only set if PTP
> > clock gets actually set, otherwise the function will return before setting
> > it.
> >
> > This is an issue as shared->phydev is unconditionally being used when IRQ
> > is being handled, especially in lan8814_gpio_process_cap and since it was
> > not set it will cause a NULL pointer exception and crash the kernel.
> >
> > So, simply always set shared->phydev to avoid the NULL pointer exception.
> >
> > Fixes: b3f1a08fcf0d ("net: phy: micrel: Add support for PTP_PF_EXTTS for lan8814")
> > Signed-off-by: Robert Marko <robert.marko@sartura.hr>
>
> Please could you look at how this patch and
>
> [PATCH net-next v2] net: phy: micrel: Add support for non PTP SKUs for lan8814
>
> work together. It might be this patch is not required because of
> changes in that patch?
I managed to reproduce this issue also with the patch:
[PATCH net-next v2] net: phy: micrel: Add support for non PTP SKUs for lan8814
The way I reproduced the issue is by disabling the config PTP_1588_CLOCK
and then just set the port up to get an interrupt.
Then I try to apply this patch and then the issue was fixed.
Tested-by: Horatiu Vultur <horatiu.vultur@microchip.com>
>
> Thanks
> Andrew
--
/Horatiu
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814
2025-10-21 13:20 [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814 Robert Marko
2025-10-21 13:32 ` Andrew Lunn
@ 2025-10-23 14:12 ` Jakub Kicinski
2025-10-23 14:16 ` Robert Marko
2025-10-23 14:30 ` patchwork-bot+netdevbpf
2 siblings, 1 reply; 6+ messages in thread
From: Jakub Kicinski @ 2025-10-23 14:12 UTC (permalink / raw)
To: Robert Marko
Cc: daniel.machon, andrew, hkallweit1, linux, davem, edumazet, pabeni,
vadim.fedorenko, horatiu.vultur, netdev, linux-kernel,
luka.perkov
On Tue, 21 Oct 2025 15:20:26 +0200 Robert Marko wrote:
> Currently, during the LAN8814 PTP probe shared->phydev is only set if PTP
> clock gets actually set, otherwise the function will return before setting
> it.
>
> This is an issue as shared->phydev is unconditionally being used when IRQ
> is being handled, especially in lan8814_gpio_process_cap and since it was
> not set it will cause a NULL pointer exception and crash the kernel.
>
> So, simply always set shared->phydev to avoid the NULL pointer exception.
>
> Fixes: b3f1a08fcf0d ("net: phy: micrel: Add support for PTP_PF_EXTTS for lan8814")
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Hopefully I'm not misunderstanding the situation, but since we're
considering taking the other patchset via net-next I'll apply
already this to prevent crashes in net..
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814
2025-10-23 14:12 ` Jakub Kicinski
@ 2025-10-23 14:16 ` Robert Marko
0 siblings, 0 replies; 6+ messages in thread
From: Robert Marko @ 2025-10-23 14:16 UTC (permalink / raw)
To: Jakub Kicinski
Cc: daniel.machon, andrew, hkallweit1, linux, davem, edumazet, pabeni,
vadim.fedorenko, horatiu.vultur, netdev, linux-kernel,
luka.perkov
On Thu, Oct 23, 2025 at 4:13 PM Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Tue, 21 Oct 2025 15:20:26 +0200 Robert Marko wrote:
> > Currently, during the LAN8814 PTP probe shared->phydev is only set if PTP
> > clock gets actually set, otherwise the function will return before setting
> > it.
> >
> > This is an issue as shared->phydev is unconditionally being used when IRQ
> > is being handled, especially in lan8814_gpio_process_cap and since it was
> > not set it will cause a NULL pointer exception and crash the kernel.
> >
> > So, simply always set shared->phydev to avoid the NULL pointer exception.
> >
> > Fixes: b3f1a08fcf0d ("net: phy: micrel: Add support for PTP_PF_EXTTS for lan8814")
> > Signed-off-by: Robert Marko <robert.marko@sartura.hr>
>
> Hopefully I'm not misunderstanding the situation, but since we're
> considering taking the other patchset via net-next I'll apply
> already this to prevent crashes in net..
That would be great, as Horatiu explained, if PTP_1588_CLOCK is not
enabled in the kernel config
kernel will crash with a NULL pointer exception as soon as the first
interrupt is being handled.
It is not tied to the pending [PATCH net-next v2] net: phy: micrel:
Add support for non-PTP SKUs for lan8814
patch.
Regards,
Robert
--
Robert Marko
Staff Embedded Linux Engineer
Sartura d.d.
Lendavska ulica 16a
10000 Zagreb, Croatia
Email: robert.marko@sartura.hr
Web: www.sartura.hr
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814
2025-10-21 13:20 [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814 Robert Marko
2025-10-21 13:32 ` Andrew Lunn
2025-10-23 14:12 ` Jakub Kicinski
@ 2025-10-23 14:30 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-10-23 14:30 UTC (permalink / raw)
To: Robert Marko
Cc: daniel.machon, andrew, hkallweit1, linux, davem, edumazet, kuba,
pabeni, vadim.fedorenko, horatiu.vultur, netdev, linux-kernel,
luka.perkov
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Tue, 21 Oct 2025 15:20:26 +0200 you wrote:
> Currently, during the LAN8814 PTP probe shared->phydev is only set if PTP
> clock gets actually set, otherwise the function will return before setting
> it.
>
> This is an issue as shared->phydev is unconditionally being used when IRQ
> is being handled, especially in lan8814_gpio_process_cap and since it was
> not set it will cause a NULL pointer exception and crash the kernel.
>
> [...]
Here is the summary with links:
- [net] net: phy: micrel: always set shared->phydev for LAN8814
https://git.kernel.org/netdev/net/c/399d10934740
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] 6+ messages in thread
end of thread, other threads:[~2025-10-23 14:30 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-21 13:20 [PATCH net] net: phy: micrel: always set shared->phydev for LAN8814 Robert Marko
2025-10-21 13:32 ` Andrew Lunn
2025-10-22 7:19 ` Horatiu Vultur
2025-10-23 14:12 ` Jakub Kicinski
2025-10-23 14:16 ` Robert Marko
2025-10-23 14:30 ` 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;
as well as URLs for NNTP newsgroup(s).