[PATCH 4.4 271/312] ovs/geneve: fix rtnl notifications on iface deletion

From: Greg Kroah-Hartman
Date: Fri May 08 2020 - 09:04:03 EST


From: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>

commit 41009481b690493c169ce85f591b9d32c6fd9422 upstream.

The function geneve_dev_create_fb() (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: e305ac6cf5a1 ("geneve: Add support to collect tunnel metadata.")
CC: Pravin B Shelar <pshelar@xxxxxxxxxx>
CC: Jesse Gross <jesse@xxxxxxxxxx>
CC: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/net/geneve.c | 4 ++++
1 file changed, 4 insertions(+)

--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -1363,6 +1363,10 @@ struct net_device *geneve_dev_create_fb(
if (err)
goto err;

+ err = rtnl_configure_link(dev, NULL);
+ if (err < 0)
+ goto err;
+
return dev;

err: