diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index f2bee234d361ae7ef0b957ea5398393333eefbb0..3fe4fc86055faa4765701c3e36f88fed043cfaeb 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -331,6 +331,9 @@ static int vlan_dev_init(struct net_device *dev)
 					  (1<<__LINK_STATE_DORMANT))) |
 		      (1<<__LINK_STATE_PRESENT);
 
+	/* ipv6 shared card related stuff */
+	dev->dev_id = real_dev->dev_id;
+
 	if (is_zero_ether_addr(dev->dev_addr))
 		memcpy(dev->dev_addr, real_dev->dev_addr, dev->addr_len);
 	if (is_zero_ether_addr(dev->broadcast))