mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 19:24:01 -04:00
Merge branch 'vxlan-disabled-ipv6'
Jiri Benc says: ==================== vxlan: do not error out on disabled IPv6 This patchset fixes a bug with metadata based tunnels when booted with ipv6.disable=1. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -2758,8 +2758,6 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, bool ipv6,
|
||||
|
||||
sock = vxlan_create_sock(net, ipv6, port, flags);
|
||||
if (IS_ERR(sock)) {
|
||||
pr_info("Cannot bind port %d, err=%ld\n", ntohs(port),
|
||||
PTR_ERR(sock));
|
||||
kfree(vs);
|
||||
return ERR_CAST(sock);
|
||||
}
|
||||
@@ -2822,17 +2820,21 @@ static int __vxlan_sock_add(struct vxlan_dev *vxlan, bool ipv6)
|
||||
|
||||
static int vxlan_sock_add(struct vxlan_dev *vxlan)
|
||||
{
|
||||
bool ipv6 = vxlan->flags & VXLAN_F_IPV6;
|
||||
bool metadata = vxlan->flags & VXLAN_F_COLLECT_METADATA;
|
||||
bool ipv6 = vxlan->flags & VXLAN_F_IPV6 || metadata;
|
||||
bool ipv4 = !ipv6 || metadata;
|
||||
int ret = 0;
|
||||
|
||||
RCU_INIT_POINTER(vxlan->vn4_sock, NULL);
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
RCU_INIT_POINTER(vxlan->vn6_sock, NULL);
|
||||
if (ipv6 || metadata)
|
||||
if (ipv6) {
|
||||
ret = __vxlan_sock_add(vxlan, true);
|
||||
if (ret < 0 && ret != -EAFNOSUPPORT)
|
||||
ipv4 = false;
|
||||
}
|
||||
#endif
|
||||
if (!ret && (!ipv6 || metadata))
|
||||
if (ipv4)
|
||||
ret = __vxlan_sock_add(vxlan, false);
|
||||
if (ret < 0)
|
||||
vxlan_sock_release(vxlan);
|
||||
|
||||
Reference in New Issue
Block a user