ACK: [PATCH][V2][SRU][X] vxlan: correctly handle ipv6.disable module parameter
Stefan Bader
stefan.bader at canonical.com
Mon Jun 4 20:07:04 UTC 2018
On 23.05.2018 05:56, Eric Desrochers wrote:
> BugLink: https://bugs.launchpad.net/bugs/1771301
>
> When IPv6 is compiled but disabled at runtime, __vxlan_sock_add returns
> -EAFNOSUPPORT. For metadata based tunnels, this causes failure of the whole
> operation of bringing up the tunnel.
>
> Ignore failure of IPv6 socket creation for metadata based tunnels caused by
> IPv6 not being available.
>
> Fixes: b1be00a6c39f ("vxlan: support both IPv4 and IPv6 sockets in a single vxlan device")
> Signed-off-by: Jiri Benc <jbenc at redhat.com>
> Signed-off-by: David S. Miller <davem at davemloft.net>
> (backported from commit d074bf9600443403aa24fbc12c1f18eadc90f5aa)
> Signed-off-by: Eric Desrochers <eric.desrochers at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
>
> ---
> drivers/net/vxlan.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
> index 5bbe41e731ca..81c7d7f0ad46 100644
> --- a/drivers/net/vxlan.c
> +++ b/drivers/net/vxlan.c
> @@ -2947,17 +2947,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;
>
> vxlan->vn4_sock = NULL;
> #if IS_ENABLED(CONFIG_IPV6)
> 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);
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20180604/5bfdae03/attachment.sig>
More information about the kernel-team
mailing list