* [frank-w-bpi-r2-4.14:7.1-rc 23/162] drivers/net/phy/phylink.c:2081:undefined reference to `register_fwnode_pcs_notifier'
@ 2026-05-10 1:29 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-05-10 1:29 UTC (permalink / raw)
To: Frank Wunderlich; +Cc: oe-kbuild-all
tree: https://github.com/frank-w/BPI-R2-4.14 7.1-rc
head: 12aaea139e45ed0d826a63a866c1ce03d352fea6
commit: 631ef2ea9e25591248d4d3ff0038123488473ce8 [23/162] net: pcs: airoha: add PCS driver for Airoha SoC
config: csky-randconfig-002-20260510 (https://download.01.org/0day-ci/archive/20260510/202605100936.ho9h06Ae-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260510/202605100936.ho9h06Ae-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605100936.ho9h06Ae-lkp@intel.com/
All errors (new ones prefixed by >>):
csky-linux-ld: drivers/net/phy/phylink.o: in function `phylink_create':
>> drivers/net/phy/phylink.c:2081:(.text+0x2996): undefined reference to `register_fwnode_pcs_notifier'
>> csky-linux-ld: drivers/net/phy/phylink.c:2096:(.text+0x2a48): undefined reference to `register_fwnode_pcs_notifier'
csky-linux-ld: drivers/net/phy/phylink.o: in function `pcs_provider_notify':
>> drivers/net/phy/phylink.c:1989:(.text+0x39c0): undefined reference to `fwnode_phylink_pcs_get_from_fwnode'
>> csky-linux-ld: drivers/net/phy/phylink.c:2022:(.text+0x3a8c): undefined reference to `fwnode_phylink_pcs_get_from_fwnode'
vim +2081 drivers/net/phy/phylink.c
4b3fc475c61fa8 Russell King 2024-09-06 1978
6fc45db08a29e9 Christian Marangi 2025-04-06 1979 static int pcs_provider_notify(struct notifier_block *self,
6fc45db08a29e9 Christian Marangi 2025-04-06 1980 unsigned long val, void *data)
6fc45db08a29e9 Christian Marangi 2025-04-06 1981 {
6fc45db08a29e9 Christian Marangi 2025-04-06 1982 struct phylink *pl = container_of(self, struct phylink, fwnode_pcs_nb);
6fc45db08a29e9 Christian Marangi 2025-04-06 1983 struct fwnode_handle *pcs_fwnode = data;
6fc45db08a29e9 Christian Marangi 2025-04-06 1984 struct phylink_pcs *pcs;
6fc45db08a29e9 Christian Marangi 2025-04-06 1985
6fc45db08a29e9 Christian Marangi 2025-04-06 1986 /* Check if the just added PCS provider is
6fc45db08a29e9 Christian Marangi 2025-04-06 1987 * in the phylink instance phy-handle property
6fc45db08a29e9 Christian Marangi 2025-04-06 1988 */
6fc45db08a29e9 Christian Marangi 2025-04-06 @1989 pcs = fwnode_phylink_pcs_get_from_fwnode(dev_fwnode(pl->config->dev),
6fc45db08a29e9 Christian Marangi 2025-04-06 1990 pcs_fwnode);
6fc45db08a29e9 Christian Marangi 2025-04-06 1991 if (IS_ERR(pcs))
6fc45db08a29e9 Christian Marangi 2025-04-06 1992 return NOTIFY_DONE;
6fc45db08a29e9 Christian Marangi 2025-04-06 1993
6fc45db08a29e9 Christian Marangi 2025-04-06 1994 /* Add the PCS */
6fc45db08a29e9 Christian Marangi 2025-04-06 1995 rtnl_lock();
6fc45db08a29e9 Christian Marangi 2025-04-06 1996
6fc45db08a29e9 Christian Marangi 2025-04-06 1997 list_add(&pcs->list, &pl->pcs_list);
6fc45db08a29e9 Christian Marangi 2025-04-06 1998
6fc45db08a29e9 Christian Marangi 2025-04-06 1999 /* Link phylink if we are started */
6fc45db08a29e9 Christian Marangi 2025-04-06 2000 if (!pl->phylink_disable_state)
6fc45db08a29e9 Christian Marangi 2025-04-06 2001 pcs->phylink = pl;
6fc45db08a29e9 Christian Marangi 2025-04-06 2002
6fc45db08a29e9 Christian Marangi 2025-04-06 2003 /* Refresh supported interfaces */
6fc45db08a29e9 Christian Marangi 2025-04-06 2004 phy_interface_copy(pl->supported_interfaces,
6fc45db08a29e9 Christian Marangi 2025-04-06 2005 pl->config->supported_interfaces);
6fc45db08a29e9 Christian Marangi 2025-04-06 2006 list_for_each_entry(pcs, &pl->pcs_list, list)
6fc45db08a29e9 Christian Marangi 2025-04-06 2007 phy_interface_or(pl->supported_interfaces,
6fc45db08a29e9 Christian Marangi 2025-04-06 2008 pl->supported_interfaces,
6fc45db08a29e9 Christian Marangi 2025-04-06 2009 pcs->supported_interfaces);
6fc45db08a29e9 Christian Marangi 2025-04-06 2010
6fc45db08a29e9 Christian Marangi 2025-04-06 2011 mutex_lock(&pl->state_mutex);
6fc45db08a29e9 Christian Marangi 2025-04-06 2012 /* Force an interface reconfig if major config fail */
6fc45db08a29e9 Christian Marangi 2025-04-06 2013 if (pl->major_config_failed)
6fc45db08a29e9 Christian Marangi 2025-04-06 2014 pl->reconfig_interface = true;
6fc45db08a29e9 Christian Marangi 2025-04-06 2015 mutex_unlock(&pl->state_mutex);
6fc45db08a29e9 Christian Marangi 2025-04-06 2016
6fc45db08a29e9 Christian Marangi 2025-04-06 2017 rtnl_unlock();
6fc45db08a29e9 Christian Marangi 2025-04-06 2018
6fc45db08a29e9 Christian Marangi 2025-04-06 2019 phylink_run_resolve(pl);
6fc45db08a29e9 Christian Marangi 2025-04-06 2020
6fc45db08a29e9 Christian Marangi 2025-04-06 2021 return NOTIFY_OK;
6fc45db08a29e9 Christian Marangi 2025-04-06 @2022 }
6fc45db08a29e9 Christian Marangi 2025-04-06 2023
8796c8923d9c42 Russell King 2017-12-01 2024 /**
8796c8923d9c42 Russell King 2017-12-01 2025 * phylink_create() - create a phylink instance
9db74e51ec08d7 Randy Dunlap 2019-10-08 2026 * @config: a pointer to the target &struct phylink_config
8fa7b9b6af252c Russell King 2017-12-01 2027 * @fwnode: a pointer to a &struct fwnode_handle describing the network
8fa7b9b6af252c Russell King 2017-12-01 2028 * interface
8796c8923d9c42 Russell King 2017-12-01 2029 * @iface: the desired link mode defined by &typedef phy_interface_t
e7765d634aaa9d Russell King 2020-03-30 2030 * @mac_ops: a pointer to a &struct phylink_mac_ops for the MAC.
8796c8923d9c42 Russell King 2017-12-01 2031 *
8796c8923d9c42 Russell King 2017-12-01 2032 * Create a new phylink instance, and parse the link parameters found in @np.
8796c8923d9c42 Russell King 2017-12-01 2033 * This will parse in-band modes, fixed-link or SFP configuration.
8796c8923d9c42 Russell King 2017-12-01 2034 *
269a6b5f23a688 Russell King 2019-11-19 2035 * Note: the rtnl lock must not be held when calling this function.
269a6b5f23a688 Russell King 2019-11-19 2036 *
8796c8923d9c42 Russell King 2017-12-01 2037 * Returns a pointer to a &struct phylink, or an error-pointer value. Users
8796c8923d9c42 Russell King 2017-12-01 2038 * must use IS_ERR() to check for errors from this function.
8796c8923d9c42 Russell King 2017-12-01 2039 */
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2040 struct phylink *phylink_create(struct phylink_config *config,
a0b7955310a445 Russell King (Oracle 2023-05-12 2041) const struct fwnode_handle *fwnode,
516b29edc3b332 Florian Fainelli 2017-10-30 2042 phy_interface_t iface,
e7765d634aaa9d Russell King 2020-03-30 2043 const struct phylink_mac_ops *mac_ops)
9525ae83959b60 Russell King 2017-07-25 2044 {
908b918b78d9c0 Christian Marangi 2025-03-31 2045 struct phylink_pcs *pcs;
9525ae83959b60 Russell King 2017-07-25 2046 struct phylink *pl;
908b918b78d9c0 Christian Marangi 2025-03-31 2047 int i, ret;
9525ae83959b60 Russell King 2017-07-25 2048
1054457006d4a1 Russell King (Oracle 2022-02-21 2049) /* Validate the supplied configuration */
de5c9bf40c4582 Russell King (Oracle 2023-05-20 2050) if (phy_interface_empty(config->supported_interfaces)) {
d1e86325af3771 Russell King (Oracle 2021-12-15 2051) dev_err(config->dev,
de5c9bf40c4582 Russell King (Oracle 2023-05-20 2052) "phylink: error: empty supported_interfaces\n");
d1e86325af3771 Russell King (Oracle 2021-12-15 2053) return ERR_PTR(-EINVAL);
d1e86325af3771 Russell King (Oracle 2021-12-15 2054) }
d1e86325af3771 Russell King (Oracle 2021-12-15 2055)
bf4afc53b77aea Linus Torvalds 2026-02-21 2056 pl = kzalloc_obj(*pl);
9525ae83959b60 Russell King 2017-07-25 2057 if (!pl)
9525ae83959b60 Russell King 2017-07-25 2058 return ERR_PTR(-ENOMEM);
9525ae83959b60 Russell King 2017-07-25 2059
0ba5b2f2c381db Vladimir Oltean 2025-09-04 2060 mutex_init(&pl->phydev_mutex);
9525ae83959b60 Russell King 2017-07-25 2061 mutex_init(&pl->state_mutex);
9525ae83959b60 Russell King 2017-07-25 2062 INIT_WORK(&pl->resolve, phylink_resolve);
908b918b78d9c0 Christian Marangi 2025-03-31 2063 INIT_LIST_HEAD(&pl->pcs_list);
908b918b78d9c0 Christian Marangi 2025-03-31 2064
908b918b78d9c0 Christian Marangi 2025-03-31 2065 /* Fill the PCS list with available PCS from phylink config */
908b918b78d9c0 Christian Marangi 2025-03-31 2066 for (i = 0; i < config->num_available_pcs; i++) {
908b918b78d9c0 Christian Marangi 2025-03-31 2067 pcs = config->available_pcs[i];
908b918b78d9c0 Christian Marangi 2025-03-31 2068
908b918b78d9c0 Christian Marangi 2025-03-31 2069 list_add(&pcs->list, &pl->pcs_list);
908b918b78d9c0 Christian Marangi 2025-03-31 2070 }
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2071
066bcf0549a85b Christian Marangi 2025-03-31 2072 phy_interface_copy(pl->supported_interfaces,
066bcf0549a85b Christian Marangi 2025-03-31 2073 config->supported_interfaces);
908b918b78d9c0 Christian Marangi 2025-03-31 2074 list_for_each_entry(pcs, &pl->pcs_list, list)
908b918b78d9c0 Christian Marangi 2025-03-31 2075 phy_interface_or(pl->supported_interfaces,
908b918b78d9c0 Christian Marangi 2025-03-31 2076 pl->supported_interfaces,
908b918b78d9c0 Christian Marangi 2025-03-31 2077 pcs->supported_interfaces);
066bcf0549a85b Christian Marangi 2025-03-31 2078
6fc45db08a29e9 Christian Marangi 2025-04-06 2079 if (!phy_interface_empty(config->pcs_interfaces)) {
6fc45db08a29e9 Christian Marangi 2025-04-06 2080 pl->fwnode_pcs_nb.notifier_call = pcs_provider_notify;
6fc45db08a29e9 Christian Marangi 2025-04-06 @2081 register_fwnode_pcs_notifier(&pl->fwnode_pcs_nb);
6fc45db08a29e9 Christian Marangi 2025-04-06 2082 }
6fc45db08a29e9 Christian Marangi 2025-04-06 2083
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2084 pl->config = config;
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2085 if (config->type == PHYLINK_NETDEV) {
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2086 pl->netdev = to_net_dev(config->dev);
02d5fdbf4f2b8c Klaus Kudielka 2023-11-07 2087 netif_carrier_off(pl->netdev);
43de61959b9992 Ioana Ciornei 2019-05-28 2088 } else if (config->type == PHYLINK_DEV) {
43de61959b9992 Ioana Ciornei 2019-05-28 2089 pl->dev = config->dev;
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2090 } else {
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2091 kfree(pl);
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2092 return ERR_PTR(-EINVAL);
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2093 }
44cc27e43fa3b8 Ioana Ciornei 2019-05-28 2094
2001d21592e5eb Russell King (Oracle 2025-02-10 2095) pl->mac_supports_eee_ops = phylink_mac_implements_lpi(mac_ops);
03abf2a7c65451 Russell King (Oracle 2025-01-15 @2096) pl->mac_supports_eee = pl->mac_supports_eee_ops &&
03abf2a7c65451 Russell King (Oracle 2025-01-15 2097) pl->config->lpi_capabilities &&
03abf2a7c65451 Russell King (Oracle 2025-01-15 2098) !phy_interface_empty(pl->config->lpi_interfaces);
03abf2a7c65451 Russell King (Oracle 2025-01-15 2099)
03abf2a7c65451 Russell King (Oracle 2025-01-15 2100) /* Set the default EEE configuration */
03abf2a7c65451 Russell King (Oracle 2025-01-15 2101) pl->eee_cfg.eee_enabled = pl->config->eee_enabled_default;
03abf2a7c65451 Russell King (Oracle 2025-01-15 2102) pl->eee_cfg.tx_lpi_enabled = pl->eee_cfg.eee_enabled;
03abf2a7c65451 Russell King (Oracle 2025-01-15 2103) pl->eee_cfg.tx_lpi_timer = pl->config->lpi_timer_default;
03abf2a7c65451 Russell King (Oracle 2025-01-15 2104)
9525ae83959b60 Russell King 2017-07-25 2105 pl->phy_state.interface = iface;
9525ae83959b60 Russell King 2017-07-25 2106 pl->link_interface = iface;
4be11ef0bdf5b3 Florian Fainelli 2017-12-12 2107 if (iface == PHY_INTERFACE_MODE_MOCA)
4be11ef0bdf5b3 Florian Fainelli 2017-12-12 2108 pl->link_port = PORT_BNC;
4be11ef0bdf5b3 Florian Fainelli 2017-12-12 2109 else
9525ae83959b60 Russell King 2017-07-25 2110 pl->link_port = PORT_MII;
9525ae83959b60 Russell King 2017-07-25 2111 pl->link_config.interface = iface;
9525ae83959b60 Russell King 2017-07-25 2112 pl->link_config.pause = MLO_PAUSE_AN;
9525ae83959b60 Russell King 2017-07-25 2113 pl->link_config.speed = SPEED_UNKNOWN;
9525ae83959b60 Russell King 2017-07-25 2114 pl->link_config.duplex = DUPLEX_UNKNOWN;
90ef0a7b0622c6 Russell King (Oracle 2023-07-13 2115) pl->pcs_state = PCS_STATE_DOWN;
e7765d634aaa9d Russell King 2020-03-30 2116 pl->mac_ops = mac_ops;
9525ae83959b60 Russell King 2017-07-25 2117 __set_bit(PHYLINK_DISABLE_STOPPED, &pl->phylink_disable_state);
9cd00a8aa42e44 Russell King 2018-05-10 2118 timer_setup(&pl->link_poll, phylink_fixed_poll, 0);
9525ae83959b60 Russell King 2017-07-25 2119
ba50a8d4025808 Russell King (Oracle 2023-11-15 2120) linkmode_fill(pl->supported);
9525ae83959b60 Russell King 2017-07-25 2121 linkmode_copy(pl->link_config.advertising, pl->supported);
9525ae83959b60 Russell King 2017-07-25 2122 phylink_validate(pl, pl->supported, &pl->link_config);
9525ae83959b60 Russell King 2017-07-25 2123
8fa7b9b6af252c Russell King 2017-12-01 2124 ret = phylink_parse_mode(pl, fwnode);
9525ae83959b60 Russell King 2017-07-25 2125 if (ret < 0) {
9525ae83959b60 Russell King 2017-07-25 2126 kfree(pl);
9525ae83959b60 Russell King 2017-07-25 2127 return ERR_PTR(ret);
9525ae83959b60 Russell King 2017-07-25 2128 }
9525ae83959b60 Russell King 2017-07-25 2129
24cf0e693bb50a Russell King 2019-12-11 2130 if (pl->cfg_link_an_mode == MLO_AN_FIXED) {
8fa7b9b6af252c Russell King 2017-12-01 2131 ret = phylink_parse_fixedlink(pl, fwnode);
9525ae83959b60 Russell King 2017-07-25 2132 if (ret < 0) {
9525ae83959b60 Russell King 2017-07-25 2133 kfree(pl);
9525ae83959b60 Russell King 2017-07-25 2134 return ERR_PTR(ret);
9525ae83959b60 Russell King 2017-07-25 2135 }
9525ae83959b60 Russell King 2017-07-25 2136 }
9525ae83959b60 Russell King 2017-07-25 2137
1f92ead7e15003 Russell King (Oracle 2024-12-03 2138) pl->req_link_an_mode = pl->cfg_link_an_mode;
24cf0e693bb50a Russell King 2019-12-11 2139
8fa7b9b6af252c Russell King 2017-12-01 2140 ret = phylink_register_sfp(pl, fwnode);
ce0aa27ff3f68e Russell King 2017-07-25 2141 if (ret < 0) {
ce0aa27ff3f68e Russell King 2017-07-25 2142 kfree(pl);
ce0aa27ff3f68e Russell King 2017-07-25 2143 return ERR_PTR(ret);
ce0aa27ff3f68e Russell King 2017-07-25 2144 }
ce0aa27ff3f68e Russell King 2017-07-25 2145
9525ae83959b60 Russell King 2017-07-25 2146 return pl;
9525ae83959b60 Russell King 2017-07-25 2147 }
9525ae83959b60 Russell King 2017-07-25 2148 EXPORT_SYMBOL_GPL(phylink_create);
9525ae83959b60 Russell King 2017-07-25 2149
:::::: The code at line 2081 was first introduced by commit
:::::: 6fc45db08a29e995a2ab14f1f1db21fd8d7de565 net: phylink: support late PCS provider attach
:::::: TO: Christian Marangi <ansuelsmth@gmail.com>
:::::: CC: Frank Wunderlich <frank-w@public-files.de>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-10 1:30 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-10 1:29 [frank-w-bpi-r2-4.14:7.1-rc 23/162] drivers/net/phy/phylink.c:2081:undefined reference to `register_fwnode_pcs_notifier' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.