Re: [PATCH] net: renesas: rswitch: Fix memory leak in rswitch_phy_device_init()

From: kernel test robot

Date: Mon Mar 30 2026 - 18:09:40 EST


Hi Ma,

kernel test robot noticed the following build warnings:

[auto build test WARNING on net-next/main]
[also build test WARNING on net/main linus/master v7.0-rc6 next-20260327]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Ma-Ke/net-renesas-rswitch-Fix-memory-leak-in-rswitch_phy_device_init/20260330-214200
base: net-next/main
patch link: https://lore.kernel.org/r/20260330073541.2871414-1-make24%40iscas.ac.cn
patch subject: [PATCH] net: renesas: rswitch: Fix memory leak in rswitch_phy_device_init()
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20260331/202603310514.S572gcNU-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260331/202603310514.S572gcNU-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603310514.S572gcNU-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/net/ethernet/renesas/rswitch_main.c:1480:2: warning: variable 'phydev' is uninitialized when used here [-Wuninitialized]
1480 | phydev->mac_managed_pm = true;
| ^~~~~~
drivers/net/ethernet/renesas/rswitch_main.c:1462:27: note: initialize the variable 'phydev' to silence this warning
1462 | struct phy_device *phydev, *tmp_phydev;
| ^
| = NULL
1 warning generated.


vim +/phydev +1480 drivers/net/ethernet/renesas/rswitch_main.c

3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1459
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1460 static int rswitch_phy_device_init(struct rswitch_device *rdev)
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1461 {
142f4caaa41b9c drivers/net/ethernet/renesas/rswitch_main.c Ma Ke 2026-03-30 1462 struct phy_device *phydev, *tmp_phydev;
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1463 struct device_node *phy;
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1464 int err = -ENOENT;
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1465
b46f1e5793298c drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1466 if (!rdev->np_port)
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1467 return -ENODEV;
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1468
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1469 phy = of_parse_phandle(rdev->np_port, "phy-handle", 0);
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1470 if (!phy)
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1471 return -ENODEV;
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1472
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1473 /* Set phydev->host_interfaces before calling of_phy_connect() to
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1474 * configure the PHY with the information of host_interfaces.
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1475 */
142f4caaa41b9c drivers/net/ethernet/renesas/rswitch_main.c Ma Ke 2026-03-30 1476 tmp_phydev = of_phy_find_device(phy);
142f4caaa41b9c drivers/net/ethernet/renesas/rswitch_main.c Ma Ke 2026-03-30 1477 if (!tmp_phydev)
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1478 goto out;
142f4caaa41b9c drivers/net/ethernet/renesas/rswitch_main.c Ma Ke 2026-03-30 1479 __set_bit(rdev->etha->phy_interface, tmp_phydev->host_interfaces);
35b78409e1c7ff drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-10-17 @1480 phydev->mac_managed_pm = true;
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1481
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1482 phydev = of_phy_connect(rdev->ndev, phy, rswitch_adjust_link, 0,
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1483 rdev->etha->phy_interface);
142f4caaa41b9c drivers/net/ethernet/renesas/rswitch_main.c Ma Ke 2026-03-30 1484
142f4caaa41b9c drivers/net/ethernet/renesas/rswitch_main.c Ma Ke 2026-03-30 1485 /* Release the temporary reference obtained by of_phy_find_device() */
142f4caaa41b9c drivers/net/ethernet/renesas/rswitch_main.c Ma Ke 2026-03-30 1486 phy_device_free(tmp_phydev);
142f4caaa41b9c drivers/net/ethernet/renesas/rswitch_main.c Ma Ke 2026-03-30 1487
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1488 if (!phydev)
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1489 goto out;
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1490
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1491 phy_set_max_speed(phydev, SPEED_2500);
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1492 phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_10baseT_Half_BIT);
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1493 phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_10baseT_Full_BIT);
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1494 phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_100baseT_Half_BIT);
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1495 phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_1000baseT_Half_BIT);
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1496 rswitch_phy_remove_link_mode(rdev, phydev);
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1497
c16a5033f77b9e drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1498 phy_attached_info(phydev);
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1499
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1500 err = 0;
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1501 out:
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1502 of_node_put(phy);
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1503
0df024d0f1d3e5 drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2023-02-01 1504 return err;
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1505 }
3590918b5d07aa drivers/net/ethernet/renesas/rswitch.c Yoshihiro Shimoda 2022-10-31 1506

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki