[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202210060303.j5EbkabE-lkp@intel.com>
Date: Thu, 6 Oct 2022 03:14:24 +0800
From: kernel test robot <lkp@...el.com>
To: Daniel Borkmann <daniel@...earbox.net>
Cc: kbuild-all@...ts.01.org, Daniel Borkmann <daniel@...earbox.net>,
linux-kernel@...r.kernel.org,
Nikolay Aleksandrov <razor@...ckwall.org>
Subject: [cilium:pr/bpf-tc-links5 1/10] net/core/dev.c:10901: undefined
reference to `dev_xtc_uninstall'
tree: https://github.com/cilium/linux.git pr/bpf-tc-links5
head: 7c3ffc4a0548d3177f68bc87af7c9775e5bcdb86
commit: d23123fce93d005f0c30e114da971359b0883cee [1/10] bpf: Add initial fd-based API to attach tc BPF programs
config: x86_64-rhel-8.3-kvm
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/cilium/linux/commit/d23123fce93d005f0c30e114da971359b0883cee
git remote add cilium https://github.com/cilium/linux.git
git fetch --no-tags cilium pr/bpf-tc-links5
git checkout d23123fce93d005f0c30e114da971359b0883cee
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
ld: net/core/dev.o: in function `unregister_netdevice_many':
>> net/core/dev.c:10901: undefined reference to `dev_xtc_uninstall'
vim +10901 net/core/dev.c
10844
10845 /**
10846 * unregister_netdevice_many - unregister many devices
10847 * @head: list of devices
10848 *
10849 * Note: As most callers use a stack allocated list_head,
10850 * we force a list_del() to make sure stack wont be corrupted later.
10851 */
10852 void unregister_netdevice_many(struct list_head *head)
10853 {
10854 struct net_device *dev, *tmp;
10855 LIST_HEAD(close_head);
10856
10857 BUG_ON(dev_boot_phase);
10858 ASSERT_RTNL();
10859
10860 if (list_empty(head))
10861 return;
10862
10863 list_for_each_entry_safe(dev, tmp, head, unreg_list) {
10864 /* Some devices call without registering
10865 * for initialization unwind. Remove those
10866 * devices and proceed with the remaining.
10867 */
10868 if (dev->reg_state == NETREG_UNINITIALIZED) {
10869 pr_debug("unregister_netdevice: device %s/%p never was registered\n",
10870 dev->name, dev);
10871
10872 WARN_ON(1);
10873 list_del(&dev->unreg_list);
10874 continue;
10875 }
10876 dev->dismantle = true;
10877 BUG_ON(dev->reg_state != NETREG_REGISTERED);
10878 }
10879
10880 /* If device is running, close it first. */
10881 list_for_each_entry(dev, head, unreg_list)
10882 list_add_tail(&dev->close_list, &close_head);
10883 dev_close_many(&close_head, true);
10884
10885 list_for_each_entry(dev, head, unreg_list) {
10886 /* And unlink it from device chain. */
10887 write_lock(&dev_base_lock);
10888 unlist_netdevice(dev, false);
10889 dev->reg_state = NETREG_UNREGISTERING;
10890 write_unlock(&dev_base_lock);
10891 }
10892 flush_all_backlogs();
10893
10894 synchronize_net();
10895
10896 list_for_each_entry(dev, head, unreg_list) {
10897 struct sk_buff *skb = NULL;
10898
10899 /* Shutdown queueing discipline. */
10900 dev_shutdown(dev);
10901 dev_xtc_uninstall(dev);
10902 dev_xdp_uninstall(dev);
10903
10904 netdev_offload_xstats_disable_all(dev);
10905
10906 /* Notify protocols, that we are about to destroy
10907 * this device. They should clean all the things.
10908 */
10909 call_netdevice_notifiers(NETDEV_UNREGISTER, dev);
10910
10911 if (!dev->rtnl_link_ops ||
10912 dev->rtnl_link_state == RTNL_LINK_INITIALIZED)
10913 skb = rtmsg_ifinfo_build_skb(RTM_DELLINK, dev, ~0U, 0,
10914 GFP_KERNEL, NULL, 0);
10915
10916 /*
10917 * Flush the unicast and multicast chains
10918 */
10919 dev_uc_flush(dev);
10920 dev_mc_flush(dev);
10921
10922 netdev_name_node_alt_flush(dev);
10923 netdev_name_node_free(dev->name_node);
10924
10925 if (dev->netdev_ops->ndo_uninit)
10926 dev->netdev_ops->ndo_uninit(dev);
10927
10928 if (skb)
10929 rtmsg_ifinfo_send(skb, dev, GFP_KERNEL);
10930
10931 /* Notifier chain MUST detach us all upper devices. */
10932 WARN_ON(netdev_has_any_upper_dev(dev));
10933 WARN_ON(netdev_has_any_lower_dev(dev));
10934
10935 /* Remove entries from kobject tree */
10936 netdev_unregister_kobject(dev);
10937 #ifdef CONFIG_XPS
10938 /* Remove XPS queueing entries */
10939 netif_reset_xps_queues_gt(dev, 0);
10940 #endif
10941 }
10942
10943 synchronize_net();
10944
10945 list_for_each_entry(dev, head, unreg_list) {
10946 netdev_put(dev, &dev->dev_registered_tracker);
10947 net_set_todo(dev);
10948 }
10949
10950 list_del(head);
10951 }
10952 EXPORT_SYMBOL(unregister_netdevice_many);
10953
--
0-DAY CI Kernel Test Service
https://01.org/lkp
View attachment "config" of type "text/plain" (164068 bytes)
Powered by blists - more mailing lists