mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
geneve: Reuse ipv6_addr_type() result in geneve_nl2info().
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(). Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20260602190436.139591-2-kuniyu@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
a87533a808
commit
1221c53985
|
|
@ -1924,6 +1924,8 @@ static int geneve_nl2info(struct nlattr *tb[], struct nlattr *data[],
|
|||
|
||||
if (data[IFLA_GENEVE_REMOTE6]) {
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
int addr_type;
|
||||
|
||||
if (changelink && (ip_tunnel_info_af(info) == AF_INET)) {
|
||||
attrtype = IFLA_GENEVE_REMOTE6;
|
||||
goto change_notsup;
|
||||
|
|
@ -1933,13 +1935,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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user