All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/net/usb/r8153_ecm.c:102:undefined reference to `usbnet_cdc_bind'
@ 2026-07-14 18:34 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-07-14 18:34 UTC (permalink / raw)
  To: Oliver Neukum; +Cc: oe-kbuild-all, 0day robot

tree:   https://github.com/intel-lab-lkp/linux/commits/Oliver-Neukum/net-usb-centralize-usbnet_cdc_zte_rx_fixup-in-usbnet/20260714-200029
head:   01c24668a6e35556ec573ceb5a3b709515946bc4
commit: fb17c1fe5a30a284abcb7bebbdd178d3dddc5f8d net: usb: remove dependencies on cdc_ether
date:   6 hours ago
config: s390-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260714/202607142015.IPv6BEAU-lkp@intel.com/config)
compiler: s390x-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260714/202607142015.IPv6BEAU-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/202607142015.IPv6BEAU-lkp@intel.com/

All errors (new ones prefixed by >>):

   s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o: in function `r8153_bind':
>> drivers/net/usb/r8153_ecm.c:102:(.text+0x22): undefined reference to `usbnet_cdc_bind'
   s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o: in function `pla_write_word':
>> drivers/net/usb/r8153_ecm.c:55:(.text+0x17e): undefined reference to `usbnet_read_cmd'
>> s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.c:64:(.text+0x1c2): undefined reference to `usbnet_write_cmd'
   s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o: in function `pla_read_word':
   drivers/net/usb/r8153_ecm.c:24:(.text+0x2d6): undefined reference to `usbnet_read_cmd'
   s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o: in function `rtl8153_ecm_probe':
>> drivers/net/usb/r8153_ecm.c:157:(.text+0x348): undefined reference to `usbnet_probe'
   s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o: in function `pla_write_word':
   drivers/net/usb/r8153_ecm.c:55:(.text+0x420): undefined reference to `usbnet_read_cmd'
   s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.c:64:(.text+0x452): undefined reference to `usbnet_write_cmd'
>> s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o:(.data.rel+0x10): undefined reference to `usbnet_disconnect'
>> s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o:(.data.rel+0x20): undefined reference to `usbnet_suspend'
>> s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o:(.data.rel+0x28): undefined reference to `usbnet_resume'
   s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o:(.data.rel+0x30): undefined reference to `usbnet_resume'
>> s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o:(.data.rel.ro+0x18): undefined reference to `usbnet_cdc_unbind'
>> s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o:(.data.rel.ro+0x38): undefined reference to `usbnet_manage_power'
>> s390x-linux-gnu-ld: drivers/net/usb/r8153_ecm.o:(.data.rel.ro+0x40): undefined reference to `usbnet_cdc_status'


vim +102 drivers/net/usb/r8153_ecm.c

c1aedf015ebdd0 Hayes Wang      2020-11-04   36  
c1aedf015ebdd0 Hayes Wang      2020-11-04   37  static int pla_write_word(struct usbnet *dev, u16 index, u32 data)
c1aedf015ebdd0 Hayes Wang      2020-11-04   38  {
c1aedf015ebdd0 Hayes Wang      2020-11-04   39  	u32 mask = 0xffff;
c1aedf015ebdd0 Hayes Wang      2020-11-04   40  	u16 byen = BYTE_EN_WORD;
c1aedf015ebdd0 Hayes Wang      2020-11-04   41  	u8 shift = index & 2;
c1aedf015ebdd0 Hayes Wang      2020-11-04   42  	__le32 tmp;
c1aedf015ebdd0 Hayes Wang      2020-11-04   43  	int ret;
c1aedf015ebdd0 Hayes Wang      2020-11-04   44  
c1aedf015ebdd0 Hayes Wang      2020-11-04   45  	data &= mask;
c1aedf015ebdd0 Hayes Wang      2020-11-04   46  
c1aedf015ebdd0 Hayes Wang      2020-11-04   47  	if (shift) {
c1aedf015ebdd0 Hayes Wang      2020-11-04   48  		byen <<= shift;
c1aedf015ebdd0 Hayes Wang      2020-11-04   49  		mask <<= (shift * 8);
c1aedf015ebdd0 Hayes Wang      2020-11-04   50  		data <<= (shift * 8);
c1aedf015ebdd0 Hayes Wang      2020-11-04   51  	}
c1aedf015ebdd0 Hayes Wang      2020-11-04   52  
c1aedf015ebdd0 Hayes Wang      2020-11-04   53  	index &= ~3;
c1aedf015ebdd0 Hayes Wang      2020-11-04   54  
c1aedf015ebdd0 Hayes Wang      2020-11-04  @55  	ret = usbnet_read_cmd(dev, RTL8152_REQ_GET_REGS, RTL8152_REQT_READ, index,
c1aedf015ebdd0 Hayes Wang      2020-11-04   56  			      MCU_TYPE_PLA | byen, &tmp, sizeof(tmp));
c1aedf015ebdd0 Hayes Wang      2020-11-04   57  
c1aedf015ebdd0 Hayes Wang      2020-11-04   58  	if (ret < 0)
c1aedf015ebdd0 Hayes Wang      2020-11-04   59  		goto out;
c1aedf015ebdd0 Hayes Wang      2020-11-04   60  
c1aedf015ebdd0 Hayes Wang      2020-11-04   61  	data |= __le32_to_cpu(tmp) & ~mask;
c1aedf015ebdd0 Hayes Wang      2020-11-04   62  	tmp = __cpu_to_le32(data);
c1aedf015ebdd0 Hayes Wang      2020-11-04   63  
c1aedf015ebdd0 Hayes Wang      2020-11-04  @64  	ret = usbnet_write_cmd(dev, RTL8152_REQ_SET_REGS, RTL8152_REQT_WRITE, index,
c1aedf015ebdd0 Hayes Wang      2020-11-04   65  			       MCU_TYPE_PLA | byen, &tmp, sizeof(tmp));
c1aedf015ebdd0 Hayes Wang      2020-11-04   66  
c1aedf015ebdd0 Hayes Wang      2020-11-04   67  out:
c1aedf015ebdd0 Hayes Wang      2020-11-04   68  	return ret;
c1aedf015ebdd0 Hayes Wang      2020-11-04   69  }
c1aedf015ebdd0 Hayes Wang      2020-11-04   70  
c1aedf015ebdd0 Hayes Wang      2020-11-04   71  static int r8153_ecm_mdio_read(struct net_device *netdev, int phy_id, int reg)
c1aedf015ebdd0 Hayes Wang      2020-11-04   72  {
c1aedf015ebdd0 Hayes Wang      2020-11-04   73  	struct usbnet *dev = netdev_priv(netdev);
c1aedf015ebdd0 Hayes Wang      2020-11-04   74  	int ret;
c1aedf015ebdd0 Hayes Wang      2020-11-04   75  
c1aedf015ebdd0 Hayes Wang      2020-11-04   76  	ret = pla_write_word(dev, OCP_BASE, 0xa000);
c1aedf015ebdd0 Hayes Wang      2020-11-04   77  	if (ret < 0)
c1aedf015ebdd0 Hayes Wang      2020-11-04   78  		goto out;
c1aedf015ebdd0 Hayes Wang      2020-11-04   79  
c1aedf015ebdd0 Hayes Wang      2020-11-04   80  	ret = pla_read_word(dev, 0xb400 + reg * 2);
c1aedf015ebdd0 Hayes Wang      2020-11-04   81  
c1aedf015ebdd0 Hayes Wang      2020-11-04   82  out:
c1aedf015ebdd0 Hayes Wang      2020-11-04   83  	return ret;
c1aedf015ebdd0 Hayes Wang      2020-11-04   84  }
c1aedf015ebdd0 Hayes Wang      2020-11-04   85  
c1aedf015ebdd0 Hayes Wang      2020-11-04   86  static void r8153_ecm_mdio_write(struct net_device *netdev, int phy_id, int reg, int val)
c1aedf015ebdd0 Hayes Wang      2020-11-04   87  {
c1aedf015ebdd0 Hayes Wang      2020-11-04   88  	struct usbnet *dev = netdev_priv(netdev);
c1aedf015ebdd0 Hayes Wang      2020-11-04   89  	int ret;
c1aedf015ebdd0 Hayes Wang      2020-11-04   90  
c1aedf015ebdd0 Hayes Wang      2020-11-04   91  	ret = pla_write_word(dev, OCP_BASE, 0xa000);
c1aedf015ebdd0 Hayes Wang      2020-11-04   92  	if (ret < 0)
c1aedf015ebdd0 Hayes Wang      2020-11-04   93  		return;
c1aedf015ebdd0 Hayes Wang      2020-11-04   94  
c1aedf015ebdd0 Hayes Wang      2020-11-04   95  	ret = pla_write_word(dev, 0xb400 + reg * 2, val);
c1aedf015ebdd0 Hayes Wang      2020-11-04   96  }
c1aedf015ebdd0 Hayes Wang      2020-11-04   97  
c1aedf015ebdd0 Hayes Wang      2020-11-04   98  static int r8153_bind(struct usbnet *dev, struct usb_interface *intf)
c1aedf015ebdd0 Hayes Wang      2020-11-04   99  {
c1aedf015ebdd0 Hayes Wang      2020-11-04  100  	int status;
c1aedf015ebdd0 Hayes Wang      2020-11-04  101  
c1aedf015ebdd0 Hayes Wang      2020-11-04 @102  	status = usbnet_cdc_bind(dev, intf);
c1aedf015ebdd0 Hayes Wang      2020-11-04  103  	if (status < 0)
c1aedf015ebdd0 Hayes Wang      2020-11-04  104  		return status;
c1aedf015ebdd0 Hayes Wang      2020-11-04  105  
c1aedf015ebdd0 Hayes Wang      2020-11-04  106  	dev->mii.dev = dev->net;
c1aedf015ebdd0 Hayes Wang      2020-11-04  107  	dev->mii.mdio_read = r8153_ecm_mdio_read;
c1aedf015ebdd0 Hayes Wang      2020-11-04  108  	dev->mii.mdio_write = r8153_ecm_mdio_write;
c1aedf015ebdd0 Hayes Wang      2020-11-04  109  	dev->mii.reg_num_mask = 0x1f;
c1aedf015ebdd0 Hayes Wang      2020-11-04  110  	dev->mii.supports_gmii = 1;
c1aedf015ebdd0 Hayes Wang      2020-11-04  111  
c1aedf015ebdd0 Hayes Wang      2020-11-04  112  	return status;
c1aedf015ebdd0 Hayes Wang      2020-11-04  113  }
c1aedf015ebdd0 Hayes Wang      2020-11-04  114  
c1aedf015ebdd0 Hayes Wang      2020-11-04  115  static const struct driver_info r8153_info = {
c1aedf015ebdd0 Hayes Wang      2020-11-04  116  	.description =	"RTL8153 ECM Device",
c1aedf015ebdd0 Hayes Wang      2020-11-04  117  	.flags =	FLAG_ETHER,
c1aedf015ebdd0 Hayes Wang      2020-11-04  118  	.bind =		r8153_bind,
c1aedf015ebdd0 Hayes Wang      2020-11-04  119  	.unbind =	usbnet_cdc_unbind,
c1aedf015ebdd0 Hayes Wang      2020-11-04  120  	.status =	usbnet_cdc_status,
c1aedf015ebdd0 Hayes Wang      2020-11-04  121  	.manage_power =	usbnet_manage_power,
c1aedf015ebdd0 Hayes Wang      2020-11-04  122  };
c1aedf015ebdd0 Hayes Wang      2020-11-04  123  
c1aedf015ebdd0 Hayes Wang      2020-11-04  124  static const struct usb_device_id products[] = {
2284bbd0cf3981 Leon Schuermann 2021-01-11  125  /* Realtek RTL8153 Based USB 3.0 Ethernet Adapters */
c1aedf015ebdd0 Hayes Wang      2020-11-04  126  {
c1aedf015ebdd0 Hayes Wang      2020-11-04  127  	USB_DEVICE_AND_INTERFACE_INFO(VENDOR_ID_REALTEK, 0x8153, USB_CLASS_COMM,
c1aedf015ebdd0 Hayes Wang      2020-11-04  128  				      USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
c1aedf015ebdd0 Hayes Wang      2020-11-04  129  	.driver_info = (unsigned long)&r8153_info,
c1aedf015ebdd0 Hayes Wang      2020-11-04  130  },
c1aedf015ebdd0 Hayes Wang      2020-11-04  131  
2284bbd0cf3981 Leon Schuermann 2021-01-11  132  /* Lenovo Powered USB-C Travel Hub (4X90S92381, based on Realtek RTL8153) */
2284bbd0cf3981 Leon Schuermann 2021-01-11  133  {
2284bbd0cf3981 Leon Schuermann 2021-01-11  134  	USB_DEVICE_AND_INTERFACE_INFO(VENDOR_ID_LENOVO, 0x721e, USB_CLASS_COMM,
2284bbd0cf3981 Leon Schuermann 2021-01-11  135  				      USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
2284bbd0cf3981 Leon Schuermann 2021-01-11  136  	.driver_info = (unsigned long)&r8153_info,
2284bbd0cf3981 Leon Schuermann 2021-01-11  137  },
a07f23ad9baf71 Philipp Hahn    2025-03-10  138  /* Lenovo ThinkPad Hybrid USB-C with USB-A Dock (40af0135eu, based on Realtek RTL8153) */
a07f23ad9baf71 Philipp Hahn    2025-03-10  139  {
a07f23ad9baf71 Philipp Hahn    2025-03-10  140  	USB_DEVICE_AND_INTERFACE_INFO(VENDOR_ID_LENOVO, 0xa359, USB_CLASS_COMM,
a07f23ad9baf71 Philipp Hahn    2025-03-10  141  				      USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
a07f23ad9baf71 Philipp Hahn    2025-03-10  142  	.driver_info = (unsigned long)&r8153_info,
a07f23ad9baf71 Philipp Hahn    2025-03-10  143  },
2284bbd0cf3981 Leon Schuermann 2021-01-11  144  
c1aedf015ebdd0 Hayes Wang      2020-11-04  145  	{ },		/* END */
c1aedf015ebdd0 Hayes Wang      2020-11-04  146  };
c1aedf015ebdd0 Hayes Wang      2020-11-04  147  MODULE_DEVICE_TABLE(usb, products);
c1aedf015ebdd0 Hayes Wang      2020-11-04  148  
c1aedf015ebdd0 Hayes Wang      2020-11-04  149  static int rtl8153_ecm_probe(struct usb_interface *intf,
c1aedf015ebdd0 Hayes Wang      2020-11-04  150  			     const struct usb_device_id *id)
c1aedf015ebdd0 Hayes Wang      2020-11-04  151  {
c1aedf015ebdd0 Hayes Wang      2020-11-04  152  #if IS_REACHABLE(CONFIG_USB_RTL8152)
c1aedf015ebdd0 Hayes Wang      2020-11-04  153  	if (rtl8152_get_version(intf))
c1aedf015ebdd0 Hayes Wang      2020-11-04  154  		return -ENODEV;
c1aedf015ebdd0 Hayes Wang      2020-11-04  155  #endif
c1aedf015ebdd0 Hayes Wang      2020-11-04  156  
c1aedf015ebdd0 Hayes Wang      2020-11-04 @157  	return usbnet_probe(intf, id);
c1aedf015ebdd0 Hayes Wang      2020-11-04  158  }
c1aedf015ebdd0 Hayes Wang      2020-11-04  159  

--
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-07-14 18:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-14 18:34 drivers/net/usb/r8153_ecm.c:102:undefined reference to `usbnet_cdc_bind' 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.