diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 86abb2e59ae..82fdb35154f 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -274,7 +274,8 @@ static int register_vlan_device(struct net_device *real_dev, u16 vlan_id) return 0; out_free_newdev: - free_netdev(new_dev); + if (new_dev->reg_state == NETREG_UNINITIALIZED) + free_netdev(new_dev); return err; }