[Devel] [PATCH rh7] net: Fix vlan NETIF_F_VIRTUAL feature initialization
Andrew Vagin
avagin at gmail.com
Wed Aug 5 06:42:14 PDT 2015
On Tue, Aug 04, 2015 at 07:01:03PM +0300, Kirill Tkhai wrote:
> vlan_setup() is called when dev's net hasn't been set yet:
>
> rtnl_create_link
> alloc_netdev_mqs
> dev_net_set(dev, &init_net)
> vlan_setup
> ...
> if (!ve_is_super(dev_net(dev)->owner_ve))
> dev->features |= NETIF_F_VIRTUAL
> ...
> dev_net_set(dev, net)
>
> So vlan's dev has no NETIF_F_VIRTUAL feature, and further
> check of ve_is_dev_movable() fails.
>
> Patch makes the feature to be set always, independent
> of dev_net(). Anyway, in further we test it only if
> ve is not super. Also, others (loopback for exmple) set
> it always too.
>
> https://jira.sw.ru/browse/PSBM-35266
>
Acked-by: Andrew Vagin <avagin at odin.com>
> Signed-off-by: Kirill Tkhai <ktkhai at odin.com>
> ---
> net/8021q/vlan_dev.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
> index 80fa918..09205c3 100644
> --- a/net/8021q/vlan_dev.c
> +++ b/net/8021q/vlan_dev.c
> @@ -794,6 +794,5 @@ void vlan_setup(struct net_device *dev)
> dev->ethtool_ops = &vlan_ethtool_ops;
>
> memset(dev->broadcast, 0, ETH_ALEN);
> - if (!ve_is_super(dev_net(dev)->owner_ve))
> - dev->features |= NETIF_F_VIRTUAL;
> + dev->features |= NETIF_F_VIRTUAL;
> }
>
> _______________________________________________
> Devel mailing list
> Devel at openvz.org
> https://lists.openvz.org/mailman/listinfo/devel
More information about the Devel
mailing list