[android-common:android17-6.18 0/1] drivers/net/phy/phy_package.c:78:undefined reference to `__mdiobus_read'
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
Hi Zhipeng, First bad commit (maybe != root cause): tree: https://android.googlesource.com/kernel/common android17-6.18 head: 0f4d083e361a7bb3bc0b44d4d637df596344729d commit: e720a50b14c5896defc425452f52d3ee1d2de1c5 [0/1] ANDROID: GKI: Select PHY_PACKAGE for vendor modules config: i386-buildonly-randconfig-001-20260813 (https://download.01.org/0day-ci/archive/20260814/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260814/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All errors (new ones prefixed by >>): ld: drivers/net/phy/phylink.o: in function `phylink_pcs_neg_mode': phylink.c:(.text+0x589): undefined reference to `phy_inband_caps' ld: phylink.c:(.text+0x62e): undefined reference to `phy_inband_caps' ld: drivers/net/phy/phylink.o: in function `phylink_caps_to_linkmodes': phylink.c:(.text+0xa0a): undefined reference to `phy_caps_linkmodes' ld: drivers/net/phy/phylink.o: in function `phylink_mii_c45_pcs_get_state': phylink.c:(.text+0xa9f): undefined reference to `mdiobus_c45_read' ld: drivers/net/phy/phylink.o: in function `phylink_mii_c22_pcs_an_restart': phylink.c:(.text+0xb1a): undefined reference to `mdiobus_read' ld: phylink.c:(.text+0xb3a): undefined reference to `mdiobus_write' ld: drivers/net/phy/phylink.o: in function `phylink_mii_c22_pcs_config': phylink.c:(.text+0xbbe): undefined reference to `mdiobus_modify' ld: phylink.c:(.text+0xbf8): undefined reference to `mdiobus_modify_changed' ld: drivers/net/phy/phylink.o: in function `phylink_resolve_an_pause': phylink.c:(.text+0xcc5): undefined reference to `linkmode_resolve_pause' ld: drivers/net/phy/phylink.o: in function `phylink_mii_c22_pcs_get_state': phylink.c:(.text+0x10e7): undefined reference to `mdiobus_read' ld: phylink.c:(.text+0x10ff): undefined reference to `mdiobus_read' ld: drivers/net/phy/phylink.o: in function `phylink_rx_clk_stop_block': phylink.c:(.text+0x12aa): undefined reference to `phy_eee_rx_clock_stop' ld: drivers/net/phy/phylink.o: in function `phylink_rx_clk_stop_unblock': phylink.c:(.text+0x142d): undefined reference to `phy_eee_rx_clock_stop' ld: drivers/net/phy/phylink.o: in function `phylink_disconnect_phy': phylink.c:(.text+0x170a): undefined reference to `phy_disconnect' ld: drivers/net/phy/phylink.o: in function `phylink_prepare_resume': phylink.c:(.text+0x1893): undefined reference to `phy_resume' ld: drivers/net/phy/phylink.o: in function `phylink_ethtool_get_wol': phylink.c:(.text+0x19ae): undefined reference to `phy_ethtool_get_wol' ld: drivers/net/phy/phylink.o: in function `phylink_ethtool_set_wol': phylink.c:(.text+0x1ae4): undefined reference to `phy_ethtool_set_wol' ld: drivers/net/phy/phylink.o: in function `phylink_ethtool_nway_reset': phylink.c:(.text+0x1c1d): undefined reference to `phy_restart_aneg' ld: drivers/net/phy/phylink.o: in function `phylink_get_eee_err': phylink.c:(.text+0x1d5f): undefined reference to `phy_get_eee_err' ld: drivers/net/phy/phylink.o: in function `phylink_ethtool_get_eee': phylink.c:(.text+0x1e96): undefined reference to `phy_ethtool_get_eee' ld: drivers/net/phy/phylink.o: in function `phylink_ethtool_set_eee': phylink.c:(.text+0x2077): undefined reference to `phy_ethtool_set_eee' ld: drivers/net/phy/phylink.o: in function `phylink_speed_down': phylink.c:(.text+0x223f): undefined reference to `phy_speed_down' ld: drivers/net/phy/phylink.o: in function `phylink_speed_up': phylink.c:(.text+0x237a): undefined reference to `phy_speed_up' ld: drivers/net/phy/phylink.o: in function `phylink_link_up.isra.0': phylink.c:(.text+0x2597): undefined reference to `phy_duplex_to_str' ld: phylink.c:(.text+0x25a1): undefined reference to `phy_speed_to_str' ld: phylink.c:(.text+0x25e0): undefined reference to `phy_duplex_to_str' ld: phylink.c:(.text+0x25ea): undefined reference to `phy_speed_to_str' ld: drivers/net/phy/phylink.o: in function `phylink_major_config': phylink.c:(.text+0x2939): undefined reference to `phy_config_inband' ld: drivers/net/phy/phylink.o: in function `phylink_ethtool_set_pauseparam': phylink.c:(.text+0x2bd5): undefined reference to `linkmode_set_pause' ld: phylink.c:(.text+0x2c29): undefined reference to `phy_set_asym_pause' ld: drivers/net/phy/phylink.o: in function `phylink_mii_ioctl': phylink.c:(.text+0x2fef): undefined reference to `mdiobus_c45_read' ld: phylink.c:(.text+0x3055): undefined reference to `phy_mii_ioctl' ld: phylink.c:(.text+0x30b2): undefined reference to `mdiobus_c45_write' ld: phylink.c:(.text+0x313c): undefined reference to `mdiobus_read' ld: phylink.c:(.text+0x323e): undefined reference to `swphy_read_reg' ld: phylink.c:(.text+0x32a0): undefined reference to `mdiobus_write' ld: phylink.c:(.text+0x3316): undefined reference to `mdiobus_c45_read' ld: phylink.c:(.text+0x3338): undefined reference to `mdiobus_c45_write' ld: drivers/net/phy/phylink.o: in function `phylink_stop': phylink.c:(.text+0x33df): undefined reference to `phy_stop' ld: drivers/net/phy/phylink.o: in function `phylink_get_capabilities': phylink.c:(.text+0x36d6): undefined reference to `phy_caps_from_interface' ld: drivers/net/phy/phylink.o: in function `phylink_ethtool_ksettings_get': phylink.c:(.text+0x40ad): undefined reference to `phy_ethtool_ksettings_get' ld: drivers/net/phy/phylink.o: in function `phylink_phy_change': phylink.c:(.text+0x4228): undefined reference to `phy_get_pause' ld: drivers/net/phy/phylink.o: in function `phylink_validate_one': phylink.c:(.text+0x45a1): undefined reference to `phy_get_rate_matching' ld: drivers/net/phy/phylink.o: in function `phylink_validate_phy': phylink.c:(.text+0x4896): undefined reference to `phy_get_rate_matching' ld: drivers/net/phy/phylink.o: in function `phylink_bringup_phy': phylink.c:(.text+0x4966): undefined reference to `phy_support_asym_pause' ld: phylink.c:(.text+0x4a2b): undefined reference to `phy_attached_info_irq' ld: phylink.c:(.text+0x4bc0): undefined reference to `phy_eee_tx_clock_stop_capable' ld: phylink.c:(.text+0x4bfa): undefined reference to `phy_eee_rx_clock_stop' ld: phylink.c:(.text+0x4c3c): undefined reference to `phy_disable_eee' ld: phylink.c:(.text+0x4c4b): undefined reference to `phy_request_interrupt' ld: phylink.c:(.text+0x4c63): undefined reference to `phy_support_eee' ld: drivers/net/phy/phylink.o: in function `phylink_connect_phy': phylink.c:(.text+0x4cfe): undefined reference to `phy_attach_direct' ld: phylink.c:(.text+0x4db3): undefined reference to `phy_detach' ld: drivers/net/phy/phylink.o: in function `phylink_fwnode_phy_connect': phylink.c:(.text+0x4e35): undefined reference to `fwnode_get_phy_node' ld: phylink.c:(.text+0x4e63): undefined reference to `fwnode_phy_find_device' ld: phylink.c:(.text+0x4ed8): undefined reference to `phy_attach_direct' ld: phylink.c:(.text+0x4ee1): undefined reference to `phy_device_free' ld: phylink.c:(.text+0x4f25): undefined reference to `phy_detach' ld: drivers/net/phy/phylink.o: in function `phylink_parse_fixedlink': phylink.c:(.text+0x51fe): undefined reference to `phy_caps_lookup' ld: drivers/net/phy/phylink.o: in function `phylink_ethtool_ksettings_set': phylink.c:(.text+0x5994): undefined reference to `phy_ethtool_ksettings_set' ld: phylink.c:(.text+0x5c04): undefined reference to `phy_caps_lookup' ld: drivers/net/phy/phylink.o: in function `phylink_start': phylink.c:(.text+0x5ef1): undefined reference to `phy_start' ld: net/socket.o: in function `sock_ioctl': socket.c:(.text+0x390b): undefined reference to `wext_handle_ioctl' ld: drivers/net/phy/phy_package.o: in function `__phy_package_read': >> drivers/net/phy/phy_package.c:78:(.text+0x133): undefined reference to `__mdiobus_read' ld: drivers/net/phy/phy_package.o: in function `__phy_package_write': >> drivers/net/phy/phy_package.c:90:(.text+0x1bb): undefined reference to `__mdiobus_write' ld: drivers/net/phy/phy_package.o: in function `__phy_package_read_mmd': >> drivers/net/phy/phy_package.c:121:(.text+0x252): undefined reference to `mmd_phy_read' ld: drivers/net/phy/phy_package.o: in function `__phy_package_write_mmd': >> drivers/net/phy/phy_package.c:154:(.text+0x315): undefined reference to `mmd_phy_write' Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for INTEL_SCU Depends on [n]: X86_PLATFORM_DEVICES [=n] Selected by [y]: - GKI_HIDDEN_X86_CONFIGS [=y] && X86 [=y] WARNING: unmet direct dependencies detected for PHYLINK Depends on [n]: NETDEVICES [=n] Selected by [y]: - GKI_HIDDEN_ETHERNET_CONFIGS [=y] WARNING: unmet direct dependencies detected for WIRELESS_EXT Depends on [n]: NET [=y] && WIRELESS [=n] Selected by [y]: - GKI_LEGACY_WEXT_ALLCONFIG [=y] WARNING: unmet direct dependencies detected for WEXT_CORE Depends on [n]: NET [=y] && WIRELESS [=n] && (CFG80211_WEXT [=n] || WIRELESS_EXT [=y]) Selected by [y]: - GKI_LEGACY_WEXT_ALLCONFIG [=y] WARNING: unmet direct dependencies detected for CAN_RX_OFFLOAD Depends on [n]: NETDEVICES [=n] && CAN_DEV [=n] && CAN_NETLINK [=n] Selected by [y]: - GKI_HIDDEN_MCP251XFD_CONFIGS [=y] WARNING: unmet direct dependencies detected for WEXT_PROC Depends on [n]: NET [=y] && WIRELESS [=n] && PROC_FS [=n] && WEXT_CORE [=y] Selected by [y]: - GKI_LEGACY_WEXT_ALLCONFIG [=y] WARNING: unmet direct dependencies detected for WEXT_PRIV Depends on [n]: NET [=y] && WIRELESS [=n] Selected by [y]: - GKI_LEGACY_WEXT_ALLCONFIG [=y] WARNING: unmet direct dependencies detected for PHY_PACKAGE Depends on [n]: NETDEVICES [=n] && PHYLIB [=n] Selected by [y]: - GKI_HIDDEN_PHY_CONFIGS [=y] vim +78 drivers/net/phy/phy_package.c e7f984e925d23f Heiner Kallweit 2025-03-03 69 e7f984e925d23f Heiner Kallweit 2025-03-03 70 int __phy_package_read(struct phy_device *phydev, unsigned int addr_offset, e7f984e925d23f Heiner Kallweit 2025-03-03 71 u32 regnum) e7f984e925d23f Heiner Kallweit 2025-03-03 72 { e7f984e925d23f Heiner Kallweit 2025-03-03 73 int addr = phy_package_address(phydev, addr_offset); e7f984e925d23f Heiner Kallweit 2025-03-03 74 e7f984e925d23f Heiner Kallweit 2025-03-03 75 if (addr < 0) e7f984e925d23f Heiner Kallweit 2025-03-03 76 return addr; e7f984e925d23f Heiner Kallweit 2025-03-03 77 e7f984e925d23f Heiner Kallweit 2025-03-03 @78 return __mdiobus_read(phydev->mdio.bus, addr, regnum); e7f984e925d23f Heiner Kallweit 2025-03-03 79 } e7f984e925d23f Heiner Kallweit 2025-03-03 80 EXPORT_SYMBOL_GPL(__phy_package_read); e7f984e925d23f Heiner Kallweit 2025-03-03 81 e7f984e925d23f Heiner Kallweit 2025-03-03 82 int __phy_package_write(struct phy_device *phydev, unsigned int addr_offset, e7f984e925d23f Heiner Kallweit 2025-03-03 83 u32 regnum, u16 val) e7f984e925d23f Heiner Kallweit 2025-03-03 84 { e7f984e925d23f Heiner Kallweit 2025-03-03 85 int addr = phy_package_address(phydev, addr_offset); e7f984e925d23f Heiner Kallweit 2025-03-03 86 e7f984e925d23f Heiner Kallweit 2025-03-03 87 if (addr < 0) e7f984e925d23f Heiner Kallweit 2025-03-03 88 return addr; e7f984e925d23f Heiner Kallweit 2025-03-03 89 e7f984e925d23f Heiner Kallweit 2025-03-03 @90 return __mdiobus_write(phydev->mdio.bus, addr, regnum, val); e7f984e925d23f Heiner Kallweit 2025-03-03 91 } e7f984e925d23f Heiner Kallweit 2025-03-03 92 EXPORT_SYMBOL_GPL(__phy_package_write); e7f984e925d23f Heiner Kallweit 2025-03-03 93 cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 94 /** cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 95 * __phy_package_read_mmd - read MMD reg relative to PHY package base addr cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 96 * @phydev: The phy_device struct cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 97 * @addr_offset: The offset to be added to PHY package base_addr cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 98 * @devad: The MMD to read from cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 99 * @regnum: The register on the MMD to read cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 100 * cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 101 * Convenience helper for reading a register of an MMD on a given PHY cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 102 * using the PHY package base address. The base address is added to cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 103 * the addr_offset value. cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 104 * cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 105 * Same calling rules as for __phy_read(); cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 106 * cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 107 * NOTE: It's assumed that the entire PHY package is either C22 or C45. cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 108 */ cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 109 int __phy_package_read_mmd(struct phy_device *phydev, cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 110 unsigned int addr_offset, int devad, cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 111 u32 regnum) cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 112 { cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 113 int addr = phy_package_address(phydev, addr_offset); cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 114 cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 115 if (addr < 0) cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 116 return addr; cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 117 cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 118 if (regnum > (u16)~0 || devad > 32) cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 119 return -EINVAL; cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 120 cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 @121 return mmd_phy_read(phydev->mdio.bus, addr, phydev->is_c45, devad, cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 122 regnum); cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 123 } cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 124 EXPORT_SYMBOL(__phy_package_read_mmd); cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 125 cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 126 /** cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 127 * __phy_package_write_mmd - write MMD reg relative to PHY package base addr cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 128 * @phydev: The phy_device struct cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 129 * @addr_offset: The offset to be added to PHY package base_addr cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 130 * @devad: The MMD to write to cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 131 * @regnum: The register on the MMD to write cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 132 * @val: value to write to @regnum cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 133 * cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 134 * Convenience helper for writing a register of an MMD on a given PHY cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 135 * using the PHY package base address. The base address is added to cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 136 * the addr_offset value. cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 137 * cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 138 * Same calling rules as for __phy_write(); cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 139 * cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 140 * NOTE: It's assumed that the entire PHY package is either C22 or C45. cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 141 */ cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 142 int __phy_package_write_mmd(struct phy_device *phydev, cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 143 unsigned int addr_offset, int devad, cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 144 u32 regnum, u16 val) cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 145 { cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 146 int addr = phy_package_address(phydev, addr_offset); cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 147 cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 148 if (addr < 0) cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 149 return addr; cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 150 cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 151 if (regnum > (u16)~0 || devad > 32) cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 152 return -EINVAL; cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 153 cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 @154 return mmd_phy_write(phydev->mdio.bus, addr, phydev->is_c45, devad, cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 155 regnum, val); cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 156 } cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 157 EXPORT_SYMBOL(__phy_package_write_mmd); cbd1ab0ce8f651 Heiner Kallweit 2025-06-12 158 :::::: The code at line 78 was first introduced by commit :::::: e7f984e925d23f8fd0469e344a8dc225e1a1b0ab net: phy: move PHY package related code from phy.h to phy_package.c :::::: TO: Heiner Kallweit <[email protected]> :::::: CC: Jakub Kicinski <[email protected]> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki