]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
vxlan: Relocate assignment of default remote device
authorIdo Schimmel <idosch@nvidia.com>
Tue, 15 Apr 2025 12:11:33 +0000 (15:11 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 22 Apr 2025 09:11:15 +0000 (11:11 +0200)
The default FDB entry can be associated with a net device if a physical
device (i.e., 'dev PHYS_DEV') was specified during the creation of the
VXLAN device.

The assignment of the net device pointer to 'dst->remote_dev' logically
belongs in the if block that resolves the pointer from the specified
ifindex, so move it there.

Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20250415121143.345227-6-idosch@nvidia.com
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/vxlan/vxlan_core.c

index d3dfc4af95560dae3541d13ba5efb0115ec5bd3f..d45b63180714c7650d8e6d2b72cefa080f760e7c 100644 (file)
@@ -3967,6 +3967,8 @@ static int __vxlan_dev_create(struct net *net, struct net_device *dev,
                err = netdev_upper_dev_link(remote_dev, dev, extack);
                if (err)
                        goto unregister;
+
+               dst->remote_dev = remote_dev;
        }
 
        err = rtnl_configure_link(dev, NULL, 0, NULL);
@@ -3994,8 +3996,7 @@ static int __vxlan_dev_create(struct net *net, struct net_device *dev,
        }
 
        list_add(&vxlan->next, &vn->vxlan_list);
-       if (remote_dev)
-               dst->remote_dev = remote_dev;
+
        return 0;
 
 unlink: