diff options
Diffstat (limited to 'net/8021q/vlan.c')
| -rw-r--r-- | net/8021q/vlan.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index a18714469bf..85addcd9372 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -86,13 +86,6 @@ void unregister_vlan_dev(struct net_device *dev, struct list_head *head)  	grp = &vlan_info->grp; -	/* Take it out of our own structures, but be sure to interlock with -	 * HW accelerating devices or SW vlan input packet processing if -	 * VLAN is not 0 (leave it there for 802.1p). -	 */ -	if (vlan_id) -		vlan_vid_del(real_dev, vlan_id); -  	grp->nr_vlan_devs--;  	if (vlan->flags & VLAN_FLAG_MVRP) @@ -114,6 +107,13 @@ void unregister_vlan_dev(struct net_device *dev, struct list_head *head)  		vlan_gvrp_uninit_applicant(real_dev);  	} +	/* Take it out of our own structures, but be sure to interlock with +	 * HW accelerating devices or SW vlan input packet processing if +	 * VLAN is not 0 (leave it there for 802.1p). +	 */ +	if (vlan_id) +		vlan_vid_del(real_dev, vlan_id); +  	/* Get rid of the vlan's reference to real_dev */  	dev_put(real_dev);  }  |