From: Nikolay Aleksandrov nikolay@nvidia.com
Since now we have src in br_ip, u no longer makes sense so rename it to dst. No functional changes.
CC: Marek Lindner mareklindner@neomailbox.ch CC: Simon Wunderlich sw@simonwunderlich.de CC: Antonio Quartulli <a@unstable.cc CC: Sven Eckelmann sven@narfation.org CC: b.a.t.m.a.n@lists.open-mesh.org Signed-off-by: Nikolay Aleksandrov nikolay@nvidia.com --- include/linux/if_bridge.h | 2 +- net/batman-adv/multicast.c | 10 +++++----- net/bridge/br_mdb.c | 16 ++++++++-------- net/bridge/br_multicast.c | 26 +++++++++++++------------- 4 files changed, 27 insertions(+), 27 deletions(-)
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;
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-mcas... 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/195fb98d13499e5a7c5a2a750e6a7e0cbcfa... 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-mcas... 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-mcas... 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/195fb98d13499e5a7c5a2a750e6a7e0cbcfa... 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
b.a.t.m.a.n@lists.open-mesh.org