[v1,net] net: phy: fix null dereference in phy_attach_direct

Message ID 20230127171427.265023-1-colin.foster@in-advantage.com
State New
Headers
Series [v1,net] net: phy: fix null dereference in phy_attach_direct |

Commit Message

Colin Foster Jan. 27, 2023, 5:14 p.m. UTC
  Commit bc66fa87d4fd ("net: phy: Add link between phy dev and mac dev")
introduced a link between net devices and phy devices. It fails to check
whether dev is NULL, leading to a NULL dereference error.

Fixes: bc66fa87d4fd ("net: phy: Add link between phy dev and mac dev")
Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
---
 drivers/net/phy/phy_device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Florian Fainelli Jan. 27, 2023, 5:32 p.m. UTC | #1
On 1/27/2023 9:14 AM, Colin Foster wrote:
> Commit bc66fa87d4fd ("net: phy: Add link between phy dev and mac dev")
> introduced a link between net devices and phy devices. It fails to check
> whether dev is NULL, leading to a NULL dereference error.
> 
> Fixes: bc66fa87d4fd ("net: phy: Add link between phy dev and mac dev")
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
  
patchwork-bot+netdevbpf@kernel.org Jan. 30, 2023, 9:30 a.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (master)
by David S. Miller <davem@davemloft.net>:

On Fri, 27 Jan 2023 09:14:27 -0800 you wrote:
> Commit bc66fa87d4fd ("net: phy: Add link between phy dev and mac dev")
> introduced a link between net devices and phy devices. It fails to check
> whether dev is NULL, leading to a NULL dereference error.
> 
> Fixes: bc66fa87d4fd ("net: phy: Add link between phy dev and mac dev")
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> 
> [...]

Here is the summary with links:
  - [v1,net] net: phy: fix null dereference in phy_attach_direct
    https://git.kernel.org/netdev/net/c/73a876022273

You are awesome, thank you!
  

Patch

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 9ba8f973f26f..a3917c7acbd3 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1538,7 +1538,7 @@  int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
 	 * another mac interface, so we should create a device link between
 	 * phy dev and mac dev.
 	 */
-	if (phydev->mdio.bus->parent && dev->dev.parent != phydev->mdio.bus->parent)
+	if (dev && phydev->mdio.bus->parent && dev->dev.parent != phydev->mdio.bus->parent)
 		phydev->devlink = device_link_add(dev->dev.parent, &phydev->mdio.dev,
 						  DL_FLAG_PM_RUNTIME | DL_FLAG_STATELESS);