|
@@ -426,12 +426,13 @@ static void veth_dellink(struct net_device *dev, struct list_head *head)
|
|
|
* not being freed before one RCU grace period.
|
|
|
*/
|
|
|
RCU_INIT_POINTER(priv->peer, NULL);
|
|
|
-
|
|
|
- priv = netdev_priv(peer);
|
|
|
- RCU_INIT_POINTER(priv->peer, NULL);
|
|
|
-
|
|
|
unregister_netdevice_queue(dev, head);
|
|
|
- unregister_netdevice_queue(peer, head);
|
|
|
+
|
|
|
+ if (peer) {
|
|
|
+ priv = netdev_priv(peer);
|
|
|
+ RCU_INIT_POINTER(priv->peer, NULL);
|
|
|
+ unregister_netdevice_queue(peer, head);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static const struct nla_policy veth_policy[VETH_INFO_MAX + 1] = {
|