Hi Nikolay,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on linus/master]
[also build test ERROR on v5.8-rc4 next-20200708]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Nikolay-Aleksandrov/net-bridge-m...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
dcde237b9b0eb1d19306e6f48c0a4e058907619f
config: parisc-randconfig-r004-20200709 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
net/bridge/br_device.c: In function 'br_dev_xmit':
> net/bridge/br_device.c:94:7: error: too many arguments to
function 'br_multicast_querier_exists'
94 |
br_multicast_querier_exists(br, eth_hdr(skb), mdst))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from net/bridge/br_device.c:19:
net/bridge/br_private.h:897:20: note: declared here
897 | static inline bool br_multicast_querier_exists(struct net_bridge *br,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
--
net/bridge/br_input.c: In function 'br_handle_frame_finish':
> net/bridge/br_input.c:137:7: error: too many arguments to
function 'br_multicast_querier_exists'
137 |
br_multicast_querier_exists(br, eth_hdr(skb), mdst)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from net/bridge/br_input.c:23:
net/bridge/br_private.h:897:20: note: declared here
897 | static inline bool br_multicast_querier_exists(struct net_bridge *br,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/br_multicast_querier_exists +94 net/bridge/br_device.c
26
27 /* net device transmit always called with BH disabled */
28 netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev)
29 {
30 struct net_bridge *br = netdev_priv(dev);
31 struct net_bridge_fdb_entry *dst;
32 struct net_bridge_mdb_entry *mdst;
33 struct pcpu_sw_netstats *brstats = this_cpu_ptr(br->stats);
34 const struct nf_br_ops *nf_ops;
35 u8 state = BR_STATE_FORWARDING;
36 const unsigned char *dest;
37 u16 vid = 0;
38
39 rcu_read_lock();
40 nf_ops = rcu_dereference(nf_br_ops);
41 if (nf_ops && nf_ops->br_dev_xmit_hook(skb)) {
42 rcu_read_unlock();
43 return NETDEV_TX_OK;
44 }
45
46 u64_stats_update_begin(&brstats->syncp);
47 brstats->tx_packets++;
48 brstats->tx_bytes += skb->len;
49 u64_stats_update_end(&brstats->syncp);
50
51 br_switchdev_frame_unmark(skb);
52 BR_INPUT_SKB_CB(skb)->brdev = dev;
53 BR_INPUT_SKB_CB(skb)->frag_max_size = 0;
54
55 skb_reset_mac_header(skb);
56 skb_pull(skb, ETH_HLEN);
57
58 if (!br_allowed_ingress(br, br_vlan_group_rcu(br), skb, &vid, &state))
59 goto out;
60
61 if (IS_ENABLED(CONFIG_INET) &&
62 (eth_hdr(skb)->h_proto == htons(ETH_P_ARP) ||
63 eth_hdr(skb)->h_proto == htons(ETH_P_RARP)) &&
64 br_opt_get(br, BROPT_NEIGH_SUPPRESS_ENABLED)) {
65 br_do_proxy_suppress_arp(skb, br, vid, NULL);
66 } else if (IS_ENABLED(CONFIG_IPV6) &&
67 skb->protocol == htons(ETH_P_IPV6) &&
68 br_opt_get(br, BROPT_NEIGH_SUPPRESS_ENABLED) &&
69 pskb_may_pull(skb, sizeof(struct ipv6hdr) +
70 sizeof(struct nd_msg)) &&
71 ipv6_hdr(skb)->nexthdr == IPPROTO_ICMPV6) {
72 struct nd_msg *msg, _msg;
73
74 msg = br_is_nd_neigh_msg(skb, &_msg);
75 if (msg)
76 br_do_suppress_nd(skb, br, vid, NULL, msg);
77 }
78
79 dest = eth_hdr(skb)->h_dest;
80 if (is_broadcast_ether_addr(dest)) {
81 br_flood(br, skb, BR_PKT_BROADCAST, false, true);
82 } else if (is_multicast_ether_addr(dest)) {
83 if (unlikely(netpoll_tx_running(dev))) {
84 br_flood(br, skb, BR_PKT_MULTICAST, false, true);
85 goto out;
86 }
87 if (br_multicast_rcv(br, NULL, skb, vid)) {
88 kfree_skb(skb);
89 goto out;
90 }
91
92 mdst = br_mdb_get(br, skb, vid);
93 if ((mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) &&
94 br_multicast_querier_exists(br, eth_hdr(skb), mdst))
95 br_multicast_flood(mdst, skb, false, true);
96 else
97 br_flood(br, skb, BR_PKT_MULTICAST, false, true);
98 } else if ((dst = br_fdb_find_rcu(br, dest, vid)) != NULL) {
99 br_forward(dst->dst, skb, false, true);
100 } else {
101 br_flood(br, skb, BR_PKT_UNICAST, false, true);
102 }
103 out:
104 rcu_read_unlock();
105 return NETDEV_TX_OK;
106 }
107
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org