Message ID | 20200921105526.1056983-7-razor@blackwall.org |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | net: bridge: mcast: IGMPv3/MLDv2 fast-path (part 2) | expand |
Hi Nikolay,
I love your patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Nikolay-Aleksandrov/net-bridge-mcast-IGMPv3-MLDv2-fast-path-part-2/20200921-185933
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 3cec0369905d086a56a7515f3449982403057599
config: riscv-allyesconfig (attached as .config)
compiler: riscv64-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=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
net/batman-adv/multicast.c: In function 'batadv_mcast_mla_br_addr_cpy':
>> net/batman-adv/multicast.c:564:20: error: 'const struct br_ip' has no member named 'u'
564 | ip_eth_mc_map(src->u.ip4, dst);
| ^~
net/batman-adv/multicast.c:567:23: error: 'const struct br_ip' has no member named 'u'
567 | ipv6_eth_mc_map(&src->u.ip6, dst);
| ^~
# https://github.com/0day-ci/linux/commit/195fb98d13499e5a7c5a2a750e6a7e0cbcfaccdc
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Nikolay-Aleksandrov/net-bridge-mcast-IGMPv3-MLDv2-fast-path-part-2/20200921-185933
git checkout 195fb98d13499e5a7c5a2a750e6a7e0cbcfaccdc
vim +564 net/batman-adv/multicast.c
c5caf4ef34e277 Linus Lüssing 2014-02-15 548
687937ab34896d Linus Lüssing 2016-05-10 549 /**
7e9a8c2ce7c5f8 Sven Eckelmann 2017-12-02 550 * batadv_mcast_mla_br_addr_cpy() - copy a bridge multicast address
687937ab34896d Linus Lüssing 2016-05-10 551 * @dst: destination to write to - a multicast MAC address
687937ab34896d Linus Lüssing 2016-05-10 552 * @src: source to read from - a multicast IP address
687937ab34896d Linus Lüssing 2016-05-10 553 *
687937ab34896d Linus Lüssing 2016-05-10 554 * Converts a given multicast IPv4/IPv6 address from a bridge
687937ab34896d Linus Lüssing 2016-05-10 555 * to its matching multicast MAC address and copies it into the given
687937ab34896d Linus Lüssing 2016-05-10 556 * destination buffer.
687937ab34896d Linus Lüssing 2016-05-10 557 *
687937ab34896d Linus Lüssing 2016-05-10 558 * Caller needs to make sure the destination buffer can hold
687937ab34896d Linus Lüssing 2016-05-10 559 * at least ETH_ALEN bytes.
687937ab34896d Linus Lüssing 2016-05-10 560 */
687937ab34896d Linus Lüssing 2016-05-10 561 static void batadv_mcast_mla_br_addr_cpy(char *dst, const struct br_ip *src)
687937ab34896d Linus Lüssing 2016-05-10 562 {
687937ab34896d Linus Lüssing 2016-05-10 563 if (src->proto == htons(ETH_P_IP))
687937ab34896d Linus Lüssing 2016-05-10 @564 ip_eth_mc_map(src->u.ip4, dst);
687937ab34896d Linus Lüssing 2016-05-10 565 #if IS_ENABLED(CONFIG_IPV6)
687937ab34896d Linus Lüssing 2016-05-10 566 else if (src->proto == htons(ETH_P_IPV6))
687937ab34896d Linus Lüssing 2016-05-10 567 ipv6_eth_mc_map(&src->u.ip6, dst);
687937ab34896d Linus Lüssing 2016-05-10 568 #endif
687937ab34896d Linus Lüssing 2016-05-10 569 else
687937ab34896d Linus Lüssing 2016-05-10 570 eth_zero_addr(dst);
687937ab34896d Linus Lüssing 2016-05-10 571 }
687937ab34896d Linus Lüssing 2016-05-10 572
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On Mon, 2020-09-21 at 21:30 +0800, kernel test robot wrote: > Hi Nikolay, > > I love your patch! Yet something to improve: > > [auto build test ERROR on net-next/master] > > url: https://github.com/0day-ci/linux/commits/Nikolay-Aleksandrov/net-bridge-mcast-IGMPv3-MLDv2-fast-path-part-2/20200921-185933 > base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 3cec0369905d086a56a7515f3449982403057599 > config: riscv-allyesconfig (attached as .config) > compiler: riscv64-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=riscv > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@intel.com> > > All errors (new ones prefixed by >>): > > net/batman-adv/multicast.c: In function 'batadv_mcast_mla_br_addr_cpy': > > > net/batman-adv/multicast.c:564:20: error: 'const struct br_ip' has no member named 'u' > 564 | ip_eth_mc_map(src->u.ip4, dst); > | ^~ > net/batman-adv/multicast.c:567:23: error: 'const struct br_ip' has no member named 'u' > 567 | ipv6_eth_mc_map(&src->u.ip6, dst); > | ^~ > Hrm, I'm pretty sure I tested batman, but apparently I missed CONFIG_BATMAN_ADV_MCAST. I'll fix it up and send v2 after some time to give people the chance to comment on the rest of the set. Thanks!
Hi Nikolay,
I love your patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Nikolay-Aleksandrov/net-bridge-mcast-IGMPv3-MLDv2-fast-path-part-2/20200921-185933
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 3cec0369905d086a56a7515f3449982403057599
config: arm-randconfig-r036-20200920 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 4e8c028158b56d9c2142a62464e8e0686bde3584)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> net/batman-adv/multicast.c:564:22: error: no member named 'u' in 'struct br_ip'
ip_eth_mc_map(src->u.ip4, dst);
~~~ ^
net/batman-adv/multicast.c:567:25: error: no member named 'u' in 'struct br_ip'
ipv6_eth_mc_map(&src->u.ip6, dst);
~~~ ^
2 errors generated.
# https://github.com/0day-ci/linux/commit/195fb98d13499e5a7c5a2a750e6a7e0cbcfaccdc
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Nikolay-Aleksandrov/net-bridge-mcast-IGMPv3-MLDv2-fast-path-part-2/20200921-185933
git checkout 195fb98d13499e5a7c5a2a750e6a7e0cbcfaccdc
vim +564 net/batman-adv/multicast.c
c5caf4ef34e277 Linus Lüssing 2014-02-15 548
687937ab34896d Linus Lüssing 2016-05-10 549 /**
7e9a8c2ce7c5f8 Sven Eckelmann 2017-12-02 550 * batadv_mcast_mla_br_addr_cpy() - copy a bridge multicast address
687937ab34896d Linus Lüssing 2016-05-10 551 * @dst: destination to write to - a multicast MAC address
687937ab34896d Linus Lüssing 2016-05-10 552 * @src: source to read from - a multicast IP address
687937ab34896d Linus Lüssing 2016-05-10 553 *
687937ab34896d Linus Lüssing 2016-05-10 554 * Converts a given multicast IPv4/IPv6 address from a bridge
687937ab34896d Linus Lüssing 2016-05-10 555 * to its matching multicast MAC address and copies it into the given
687937ab34896d Linus Lüssing 2016-05-10 556 * destination buffer.
687937ab34896d Linus Lüssing 2016-05-10 557 *
687937ab34896d Linus Lüssing 2016-05-10 558 * Caller needs to make sure the destination buffer can hold
687937ab34896d Linus Lüssing 2016-05-10 559 * at least ETH_ALEN bytes.
687937ab34896d Linus Lüssing 2016-05-10 560 */
687937ab34896d Linus Lüssing 2016-05-10 561 static void batadv_mcast_mla_br_addr_cpy(char *dst, const struct br_ip *src)
687937ab34896d Linus Lüssing 2016-05-10 562 {
687937ab34896d Linus Lüssing 2016-05-10 563 if (src->proto == htons(ETH_P_IP))
687937ab34896d Linus Lüssing 2016-05-10 @564 ip_eth_mc_map(src->u.ip4, dst);
687937ab34896d Linus Lüssing 2016-05-10 565 #if IS_ENABLED(CONFIG_IPV6)
687937ab34896d Linus Lüssing 2016-05-10 566 else if (src->proto == htons(ETH_P_IPV6))
687937ab34896d Linus Lüssing 2016-05-10 567 ipv6_eth_mc_map(&src->u.ip6, dst);
687937ab34896d Linus Lüssing 2016-05-10 568 #endif
687937ab34896d Linus Lüssing 2016-05-10 569 else
687937ab34896d Linus Lüssing 2016-05-10 570 eth_zero_addr(dst);
687937ab34896d Linus Lüssing 2016-05-10 571 }
687937ab34896d Linus Lüssing 2016-05-10 572
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h index 4fb9c4954f3a..556caed00258 100644 --- a/include/linux/if_bridge.h +++ b/include/linux/if_bridge.h @@ -25,7 +25,7 @@ struct br_ip { #if IS_ENABLED(CONFIG_IPV6) struct in6_addr ip6; #endif - } u; + } dst; __be16 proto; __u16 vid; }; diff --git a/net/batman-adv/multicast.c b/net/batman-adv/multicast.c index 1622c3f5898f..2317c0d69b58 100644 --- a/net/batman-adv/multicast.c +++ b/net/batman-adv/multicast.c @@ -220,7 +220,7 @@ static u8 batadv_mcast_mla_rtr_flags_bridge_get(struct batadv_priv *bat_priv, * address here, only IPv6 ones */ if (br_ip_entry->addr.proto == htons(ETH_P_IPV6) && - ipv6_addr_is_ll_all_routers(&br_ip_entry->addr.u.ip6)) + ipv6_addr_is_ll_all_routers(&br_ip_entry->addr.dst.ip6)) flags &= ~BATADV_MCAST_WANT_NO_RTR6; list_del(&br_ip_entry->list); @@ -608,11 +608,11 @@ static int batadv_mcast_mla_bridge_get(struct net_device *dev, continue; if (tvlv_flags & BATADV_MCAST_WANT_ALL_UNSNOOPABLES && - ipv4_is_local_multicast(br_ip_entry->addr.u.ip4)) + ipv4_is_local_multicast(br_ip_entry->addr.dst.ip4)) continue; if (!(tvlv_flags & BATADV_MCAST_WANT_NO_RTR4) && - !ipv4_is_local_multicast(br_ip_entry->addr.u.ip4)) + !ipv4_is_local_multicast(br_ip_entry->addr.dst.ip4)) continue; } @@ -622,11 +622,11 @@ static int batadv_mcast_mla_bridge_get(struct net_device *dev, continue; if (tvlv_flags & BATADV_MCAST_WANT_ALL_UNSNOOPABLES && - ipv6_addr_is_ll_all_nodes(&br_ip_entry->addr.u.ip6)) + ipv6_addr_is_ll_all_nodes(&br_ip_entry->addr.dst.ip6)) continue; if (!(tvlv_flags & BATADV_MCAST_WANT_NO_RTR6) && - IPV6_ADDR_MC_SCOPE(&br_ip_entry->addr.u.ip6) > + IPV6_ADDR_MC_SCOPE(&br_ip_entry->addr.dst.ip6) > IPV6_ADDR_SCOPE_LINKLOCAL) continue; } diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index 269ffd2e549b..a1ff0a372185 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -70,10 +70,10 @@ static void __mdb_entry_to_br_ip(struct br_mdb_entry *entry, struct br_ip *ip) ip->vid = entry->vid; ip->proto = entry->addr.proto; if (ip->proto == htons(ETH_P_IP)) - ip->u.ip4 = entry->addr.u.ip4; + ip->dst.ip4 = entry->addr.u.ip4; #if IS_ENABLED(CONFIG_IPV6) else - ip->u.ip6 = entry->addr.u.ip6; + ip->dst.ip6 = entry->addr.u.ip6; #endif } @@ -158,10 +158,10 @@ static int __mdb_fill_info(struct sk_buff *skb, e.ifindex = ifindex; e.vid = mp->addr.vid; if (mp->addr.proto == htons(ETH_P_IP)) - e.addr.u.ip4 = mp->addr.u.ip4; + e.addr.u.ip4 = mp->addr.dst.ip4; #if IS_ENABLED(CONFIG_IPV6) if (mp->addr.proto == htons(ETH_P_IPV6)) - e.addr.u.ip6 = mp->addr.u.ip6; + e.addr.u.ip6 = mp->addr.dst.ip6; #endif e.addr.proto = mp->addr.proto; nest_ent = nla_nest_start_noflag(skb, @@ -474,10 +474,10 @@ static void br_mdb_switchdev_host_port(struct net_device *dev, }; if (mp->addr.proto == htons(ETH_P_IP)) - ip_eth_mc_map(mp->addr.u.ip4, mdb.addr); + ip_eth_mc_map(mp->addr.dst.ip4, mdb.addr); #if IS_ENABLED(CONFIG_IPV6) else - ipv6_eth_mc_map(&mp->addr.u.ip6, mdb.addr); + ipv6_eth_mc_map(&mp->addr.dst.ip6, mdb.addr); #endif mdb.obj.orig_dev = dev; @@ -520,10 +520,10 @@ void br_mdb_notify(struct net_device *dev, if (pg) { if (mp->addr.proto == htons(ETH_P_IP)) - ip_eth_mc_map(mp->addr.u.ip4, mdb.addr); + ip_eth_mc_map(mp->addr.dst.ip4, mdb.addr); #if IS_ENABLED(CONFIG_IPV6) else - ipv6_eth_mc_map(&mp->addr.u.ip6, mdb.addr); + ipv6_eth_mc_map(&mp->addr.dst.ip6, mdb.addr); #endif mdb.obj.orig_dev = pg->port->dev; switch (type) { diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index a899c22c8f57..e1fb822b9ddb 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -86,7 +86,7 @@ static struct net_bridge_mdb_entry *br_mdb_ip4_get(struct net_bridge *br, struct br_ip br_dst; memset(&br_dst, 0, sizeof(br_dst)); - br_dst.u.ip4 = dst; + br_dst.dst.ip4 = dst; br_dst.proto = htons(ETH_P_IP); br_dst.vid = vid; @@ -101,7 +101,7 @@ static struct net_bridge_mdb_entry *br_mdb_ip6_get(struct net_bridge *br, struct br_ip br_dst; memset(&br_dst, 0, sizeof(br_dst)); - br_dst.u.ip6 = *dst; + br_dst.dst.ip6 = *dst; br_dst.proto = htons(ETH_P_IPV6); br_dst.vid = vid; @@ -126,11 +126,11 @@ struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge *br, switch (skb->protocol) { case htons(ETH_P_IP): - ip.u.ip4 = ip_hdr(skb)->daddr; + ip.dst.ip4 = ip_hdr(skb)->daddr; break; #if IS_ENABLED(CONFIG_IPV6) case htons(ETH_P_IPV6): - ip.u.ip6 = ipv6_hdr(skb)->daddr; + ip.dst.ip6 = ipv6_hdr(skb)->daddr; break; #endif default: @@ -625,9 +625,9 @@ static struct sk_buff *br_multicast_alloc_query(struct net_bridge *br, switch (group->proto) { case htons(ETH_P_IP): - ip4_dst = ip_dst ? ip_dst->u.ip4 : htonl(INADDR_ALLHOSTS_GROUP); + ip4_dst = ip_dst ? ip_dst->dst.ip4 : htonl(INADDR_ALLHOSTS_GROUP); return br_ip4_multicast_alloc_query(br, pg, - ip4_dst, group->u.ip4, + ip4_dst, group->dst.ip4, with_srcs, over_lmqt, sflag, igmp_type, need_rexmit); @@ -636,13 +636,13 @@ static struct sk_buff *br_multicast_alloc_query(struct net_bridge *br, struct in6_addr ip6_dst; if (ip_dst) - ip6_dst = ip_dst->u.ip6; + ip6_dst = ip_dst->dst.ip6; else ipv6_addr_set(&ip6_dst, htonl(0xff020000), 0, 0, htonl(1)); return br_ip6_multicast_alloc_query(br, pg, - &ip6_dst, &group->u.ip6, + &ip6_dst, &group->dst.ip6, with_srcs, over_lmqt, sflag, igmp_type, need_rexmit); @@ -906,7 +906,7 @@ static int br_ip4_multicast_add_group(struct net_bridge *br, return 0; memset(&br_group, 0, sizeof(br_group)); - br_group.u.ip4 = group; + br_group.dst.ip4 = group; br_group.proto = htons(ETH_P_IP); br_group.vid = vid; filter_mode = igmpv2 ? MCAST_EXCLUDE : MCAST_INCLUDE; @@ -930,7 +930,7 @@ static int br_ip6_multicast_add_group(struct net_bridge *br, return 0; memset(&br_group, 0, sizeof(br_group)); - br_group.u.ip6 = *group; + br_group.dst.ip6 = *group; br_group.proto = htons(ETH_P_IPV6); br_group.vid = vid; filter_mode = mldv1 ? MCAST_EXCLUDE : MCAST_INCLUDE; @@ -1079,7 +1079,7 @@ static void br_multicast_send_query(struct net_bridge *br, !br_opt_get(br, BROPT_MULTICAST_QUERIER)) return; - memset(&br_group.u, 0, sizeof(br_group.u)); + memset(&br_group.dst, 0, sizeof(br_group.dst)); if (port ? (own_query == &port->ip4_own_query) : (own_query == &br->ip4_own_query)) { @@ -2506,7 +2506,7 @@ static void br_ip4_multicast_leave_group(struct net_bridge *br, own_query = port ? &port->ip4_own_query : &br->ip4_own_query; memset(&br_group, 0, sizeof(br_group)); - br_group.u.ip4 = group; + br_group.dst.ip4 = group; br_group.proto = htons(ETH_P_IP); br_group.vid = vid; @@ -2530,7 +2530,7 @@ static void br_ip6_multicast_leave_group(struct net_bridge *br, own_query = port ? &port->ip6_own_query : &br->ip6_own_query; memset(&br_group, 0, sizeof(br_group)); - br_group.u.ip6 = *group; + br_group.dst.ip6 = *group; br_group.proto = htons(ETH_P_IPV6); br_group.vid = vid;