ovs/gre: fix rtnl notifications on iface deletion
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Mon, 13 Jun 2016 08:31:06 +0000 (10:31 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jun 2016 05:21:44 +0000 (22:21 -0700)
The function gretap_fb_dev_create() (only used by ovs) never calls
rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
never set to RTNL_LINK_INITIALIZED.
During the deletion phase, the function rollback_registered_many() sends
a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.

Fixes: b2acd1dc3949 ("openvswitch: Use regular GRE net_device instead of vport")
CC: Thomas Graf <tgraf@suug.ch>
CC: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_gre.c

index 08deba679c8c0fb37812ad07f750e3adc5686e8e..07c5cf1838d85121b3af994f83e82e1f226777b2 100644 (file)
@@ -1149,6 +1149,10 @@ struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
        if (err)
                goto out;
 
+       err = rtnl_configure_link(dev, NULL);
+       if (err < 0)
+               goto out;
+
        return dev;
 out:
        ip_tunnel_dellink(dev, &list_kill);