diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index aaf7d755fc8a..3770bc84a944 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -1568,6 +1568,11 @@ destroy_macvlan_port: if (create) macvlan_port_destroy(port->dev); } + /* @dev might have been made visible before an error was detected. + * Make sure to observe an RCU grace period before our caller + * (rtnl_newlink()) frees it. + */ + synchronize_net(); return err; } EXPORT_SYMBOL_GPL(macvlan_common_newlink);