diff options
| -rw-r--r-- | net/core/rtnetlink.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 5be499b6a2d2..ab293a3066b3 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
| @@ -2162,7 +2162,14 @@ replay: | |||
| 2162 | } | 2162 | } |
| 2163 | err = rtnl_configure_link(dev, ifm); | 2163 | err = rtnl_configure_link(dev, ifm); |
| 2164 | if (err < 0) { | 2164 | if (err < 0) { |
| 2165 | unregister_netdevice(dev); | 2165 | if (ops->newlink) { |
| 2166 | LIST_HEAD(list_kill); | ||
| 2167 | |||
| 2168 | ops->dellink(dev, &list_kill); | ||
| 2169 | unregister_netdevice_many(&list_kill); | ||
| 2170 | } else { | ||
| 2171 | unregister_netdevice(dev); | ||
| 2172 | } | ||
| 2166 | goto out; | 2173 | goto out; |
| 2167 | } | 2174 | } |
| 2168 | 2175 | ||
