Re: [PATCH v1 net-next 1/5] geneve: Reuse ipv6_addr_type() result in geneve_nl2info().
From: Kuniyuki Iwashima <kuniyu@google.com>
Date: 2026-05-24 07:50:48
On Fri, May 22, 2026 at 11:16 PM Kuniyuki Iwashima [off-list ref] wrote:
geneve_nl2info() calls ipv6_addr_type() to check if the remote IPv6 address is link-local. Then, it also calls ipv6_addr_is_multicast() for the same address. Let's not call ipv6_addr_is_multicast() and reuse ipv6_addr_type(). Note that addr_type will be reused in the next patch, thus it is not defined inside the if-block.
I'll move addr_type to the if-block to avoid the unused var warning for CONFIG_IPV6=n. pw-bot: cr
quoted hunk ↗ jump to hunk
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> --- drivers/net/geneve.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index e8ff03ed87dc..16b5f9e13859 100644 --- a/drivers/net/geneve.c +++ b/drivers/net/geneve.c@@ -1898,6 +1898,7 @@ static int geneve_nl2info(struct nlattr *tb[], struct nlattr *data[], struct geneve_config *cfg, bool changelink) { struct ip_tunnel_info *info = &cfg->info; + int addr_type; int attrtype; if (data[IFLA_GENEVE_REMOTE] && data[IFLA_GENEVE_REMOTE6]) {@@ -1933,13 +1934,13 @@ static int geneve_nl2info(struct nlattr *tb[], struct nlattr *data[], info->key.u.ipv6.dst = nla_get_in6_addr(data[IFLA_GENEVE_REMOTE6]); - if (ipv6_addr_type(&info->key.u.ipv6.dst) & - IPV6_ADDR_LINKLOCAL) { + addr_type = ipv6_addr_type(&info->key.u.ipv6.dst); + if (addr_type & IPV6_ADDR_LINKLOCAL) { NL_SET_ERR_MSG_ATTR(extack, data[IFLA_GENEVE_REMOTE6], "Remote IPv6 address cannot be link-local"); return -EINVAL; } - if (ipv6_addr_is_multicast(&info->key.u.ipv6.dst)) { + if (addr_type & IPV6_ADDR_MULTICAST) { NL_SET_ERR_MSG_ATTR(extack, data[IFLA_GENEVE_REMOTE6], "Remote IPv6 address cannot be Multicast"); return -EINVAL; --2.54.0.746.g67dd491aae-goog