kernel/net/ipv6/ip6_udp_tunnel.c
.. .. @@ -1,3 +1,4 @@ 1 +// SPDX-License-Identifier: GPL-2.0-only1 2 #include <linux/module.h> 2 3 #include <linux/errno.h> 3 4 #include <linux/socket.h> .. .. @@ -24,10 +25,12 @@ 24 25 goto error; 25 26 26 27 if (cfg->ipv6_v6only) { 27 - int val = 1;28 -29 - err = kernel_setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,30 - (char *) &val, sizeof(val));28 + err = ip6_sock_set_v6only(sock->sk);29 + if (err < 0)30 + goto error;31 + }32 + if (cfg->bind_ifindex) {33 + err = sock_bindtoindex(sock->sk, cfg->bind_ifindex, true);31 34 if (err < 0) 32 35 goto error; 33 36 }