diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-05-11 14:44:27 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-05-11 14:44:31 +0200 | 
| commit | 41fb454ebe6024f5c1e3b3cbc0abc0da762e7b51 (patch) | |
| tree | 51c50bcb67a5039448ddfa1869d7948cab1217e9 /net/8021q/vlan_dev.c | |
| parent | 19c1a6f5764d787113fa323ffb18be7991208f82 (diff) | |
| parent | 091bf7624d1c90cec9e578a18529f615213ff847 (diff) | |
Merge commit 'v2.6.30-rc5' into core/iommu
Merge reason: core/iommu was on an .30-rc1 base,
              update it to .30-rc5 to refresh.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'net/8021q/vlan_dev.c')
| -rw-r--r-- | net/8021q/vlan_dev.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 1b34135cf99..b4b9068e55a 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c @@ -462,6 +462,7 @@ static int vlan_dev_open(struct net_device *dev)  	if (vlan->flags & VLAN_FLAG_GVRP)  		vlan_gvrp_request_join(dev); +	netif_carrier_on(dev);  	return 0;  clear_allmulti: @@ -471,6 +472,7 @@ del_unicast:  	if (compare_ether_addr(dev->dev_addr, real_dev->dev_addr))  		dev_unicast_delete(real_dev, dev->dev_addr, ETH_ALEN);  out: +	netif_carrier_off(dev);  	return err;  } @@ -492,6 +494,7 @@ static int vlan_dev_stop(struct net_device *dev)  	if (compare_ether_addr(dev->dev_addr, real_dev->dev_addr))  		dev_unicast_delete(real_dev, dev->dev_addr, dev->addr_len); +	netif_carrier_off(dev);  	return 0;  } @@ -612,6 +615,8 @@ static int vlan_dev_init(struct net_device *dev)  	struct net_device *real_dev = vlan_dev_info(dev)->real_dev;  	int subclass = 0; +	netif_carrier_off(dev); +  	/* IFF_BROADCAST|IFF_MULTICAST; ??? */  	dev->flags  = real_dev->flags & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI);  	dev->iflink = real_dev->ifindex; @@ -668,7 +673,8 @@ static int vlan_ethtool_get_settings(struct net_device *dev,  	const struct vlan_dev_info *vlan = vlan_dev_info(dev);  	struct net_device *real_dev = vlan->real_dev; -	if (!real_dev->ethtool_ops->get_settings) +	if (!real_dev->ethtool_ops || +	    !real_dev->ethtool_ops->get_settings)  		return -EOPNOTSUPP;  	return real_dev->ethtool_ops->get_settings(real_dev, cmd);  | 
