Hi Andre,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    
https://github.com/0day-ci/linux/commits/Andre-Edich/Add-PAL-support-to-smsc95xx/20200723-195824
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 
7fc3b978a8971305d456b32d3f2ac13191f5a0d7
config: x86_64-randconfig-a016-20200724 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_disconnect_phy':
   drivers/net/usb/smsc95xx.c:1320: undefined reference to `phy_stop'
   ld: drivers/net/usb/smsc95xx.c:1321: undefined reference to `phy_disconnect'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_unbind':
   drivers/net/usb/smsc95xx.c:1284: undefined reference to `mdiobus_unregister'
   ld: drivers/net/usb/smsc95xx.c:1285: undefined reference to `mdiobus_free'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_read':
   include/linux/phy.h:804: undefined reference to `mdiobus_read'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_write':
   include/linux/phy.h:844: undefined reference to `mdiobus_write'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_read':
   include/linux/phy.h:804: undefined reference to `mdiobus_read'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_write':
   include/linux/phy.h:844: undefined reference to `mdiobus_write'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_read':
   include/linux/phy.h:804: undefined reference to `mdiobus_read'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_write':
   include/linux/phy.h:844: undefined reference to `mdiobus_write'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_read':
   include/linux/phy.h:804: undefined reference to `mdiobus_read'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_write':
   include/linux/phy.h:844: undefined reference to `mdiobus_write'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_get_link_ksettings':
>> drivers/net/usb/smsc95xx.c:815: undefined reference to 
>> `phy_ethtool_get_link_ksettings'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_read_status':
>> include/linux/phy.h:1402: undefined reference to `genphy_read_status'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_read':
   include/linux/phy.h:804: undefined reference to `mdiobus_read'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_write':
   include/linux/phy.h:844: undefined reference to `mdiobus_write'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_link_reset':
>> drivers/net/usb/smsc95xx.c:582: undefined reference to 
>> `phy_ethtool_ksettings_get'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_read':
   include/linux/phy.h:804: undefined reference to `mdiobus_read'
   ld: include/linux/phy.h:804: undefined reference to `mdiobus_read'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_start_phy':
   drivers/net/usb/smsc95xx.c:1305: undefined reference to `phy_connect_direct'
   ld: drivers/net/usb/smsc95xx.c:1313: undefined reference to 
`phy_attached_info'
   ld: drivers/net/usb/smsc95xx.c:1314: undefined reference to `phy_start'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_resume':
   drivers/net/usb/smsc95xx.c:1869: undefined reference to `phy_init_hw'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_handle_link_change':
   drivers/net/usb/smsc95xx.c:1292: undefined reference to `phy_print_status'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_set_link_ksettings':
>> drivers/net/usb/smsc95xx.c:832: undefined reference to 
>> `phy_ethtool_set_link_ksettings'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_ioctl':
>> drivers/net/usb/smsc95xx.c:864: undefined reference to `phy_mii_ioctl'
>> ld: drivers/net/usb/smsc95xx.o:(.rodata+0x22e0): undefined reference to 
>> `phy_ethtool_nway_reset'
   ld: drivers/net/usb/smsc95xx.o: in function `mdiobus_alloc':
   include/linux/phy.h:318: undefined reference to `mdiobus_alloc_size'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_bind':
   drivers/net/usb/smsc95xx.c:1229: undefined reference to `__mdiobus_register'
   ld: drivers/net/usb/smsc95xx.c:1235: undefined reference to `phy_find_first'
   ld: drivers/net/usb/smsc95xx.o: in function `phy_read':
   include/linux/phy.h:804: undefined reference to `mdiobus_read'
   ld: drivers/net/usb/smsc95xx.o: in function `smsc95xx_bind':
   drivers/net/usb/smsc95xx.c:1270: undefined reference to `mdiobus_unregister'
   ld: drivers/net/usb/smsc95xx.c:1273: undefined reference to `mdiobus_free'

vim +815 drivers/net/usb/smsc95xx.c

   807  
   808  static int smsc95xx_get_link_ksettings(struct net_device *net,
   809                                         struct ethtool_link_ksettings 
*cmd)
   810  {
   811          struct usbnet *dev = netdev_priv(net);
   812          struct smsc95xx_priv *pdata = dev->driver_priv;
   813          int retval;
   814  
 > 815          retval = phy_ethtool_get_link_ksettings(net, cmd);
   816          if (pdata->internal_phy) {
   817                  cmd->base.eth_tp_mdix = pdata->mdix_ctrl;
   818                  cmd->base.eth_tp_mdix_ctrl = pdata->mdix_ctrl;
   819          }
   820          return retval;
   821  }
   822  
   823  static int smsc95xx_set_link_ksettings(struct net_device *net,
   824                                         const struct 
ethtool_link_ksettings *cmd)
   825  {
   826          struct usbnet *dev = netdev_priv(net);
   827          struct smsc95xx_priv *pdata = dev->driver_priv;
   828          u8 mdix_ctrl = cmd->base.eth_tp_mdix_ctrl;
   829  
   830          if (pdata->mdix_ctrl != mdix_ctrl && pdata->internal_phy)
   831                  set_mdix_status(net, mdix_ctrl);
 > 832          return phy_ethtool_set_link_ksettings(net, cmd);
   833  }
   834  
   835  static u32 smsc95xx_get_link(struct net_device *net)
   836  {
   837          phy_read_status(net->phydev);
   838          return net->phydev->link;
   839  }
   840  
   841  static const struct ethtool_ops smsc95xx_ethtool_ops = {
   842          .get_link       = smsc95xx_get_link,
   843          .nway_reset     = phy_ethtool_nway_reset,
   844          .get_drvinfo    = usbnet_get_drvinfo,
   845          .get_msglevel   = usbnet_get_msglevel,
   846          .set_msglevel   = usbnet_set_msglevel,
   847          .get_eeprom_len = smsc95xx_ethtool_get_eeprom_len,
   848          .get_eeprom     = smsc95xx_ethtool_get_eeprom,
   849          .set_eeprom     = smsc95xx_ethtool_set_eeprom,
   850          .get_regs_len   = smsc95xx_ethtool_getregslen,
   851          .get_regs       = smsc95xx_ethtool_getregs,
   852          .get_wol        = smsc95xx_ethtool_get_wol,
   853          .set_wol        = smsc95xx_ethtool_set_wol,
   854          .get_link_ksettings     = smsc95xx_get_link_ksettings,
   855          .set_link_ksettings     = smsc95xx_set_link_ksettings,
   856          .get_ts_info    = ethtool_op_get_ts_info,
   857  };
   858  
   859  static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, 
int cmd)
   860  {
   861          if (!netif_running(netdev))
   862                  return -EINVAL;
   863  
 > 864          return phy_mii_ioctl(netdev->phydev, rq, cmd);
   865  }
   866  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to