diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-07-04 08:19:21 -0700 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-07-04 08:19:21 -0700 | 
| commit | c318a821b9828ef3be97d5d896d146e7daa43c86 (patch) | |
| tree | 7ed40911ffebcbabf87ec4be692f6fb154053687 /drivers/net/geneve.c | |
| parent | 322832f2f19e04c866a0ce4bdac8cff8e695f2b3 (diff) | |
| parent | a99cde438de0c4c0cecc1d1af1a55a75b10bfdef (diff) | |
Merge 4.7-rc6 into usb-next
We want the USB fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net/geneve.c')
| -rw-r--r-- | drivers/net/geneve.c | 22 | 
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index cadefe4fdaa2..cc39cefeae45 100644 --- a/drivers/net/geneve.c +++ b/drivers/net/geneve.c @@ -958,8 +958,8 @@ tx_error:  		dev->stats.collisions++;  	else if (err == -ENETUNREACH)  		dev->stats.tx_carrier_errors++; -	else -		dev->stats.tx_errors++; + +	dev->stats.tx_errors++;  	return NETDEV_TX_OK;  } @@ -1048,8 +1048,8 @@ tx_error:  		dev->stats.collisions++;  	else if (err == -ENETUNREACH)  		dev->stats.tx_carrier_errors++; -	else -		dev->stats.tx_errors++; + +	dev->stats.tx_errors++;  	return NETDEV_TX_OK;  }  #endif @@ -1508,6 +1508,7 @@ struct net_device *geneve_dev_create_fb(struct net *net, const char *name,  {  	struct nlattr *tb[IFLA_MAX + 1];  	struct net_device *dev; +	LIST_HEAD(list_kill);  	int err;  	memset(tb, 0, sizeof(tb)); @@ -1519,8 +1520,10 @@ struct net_device *geneve_dev_create_fb(struct net *net, const char *name,  	err = geneve_configure(net, dev, &geneve_remote_unspec,  			       0, 0, 0, 0, htons(dst_port), true,  			       GENEVE_F_UDP_ZERO_CSUM6_RX); -	if (err) -		goto err; +	if (err) { +		free_netdev(dev); +		return ERR_PTR(err); +	}  	/* openvswitch users expect packet sizes to be unrestricted,  	 * so set the largest MTU we can. @@ -1529,10 +1532,15 @@ struct net_device *geneve_dev_create_fb(struct net *net, const char *name,  	if (err)  		goto err; +	err = rtnl_configure_link(dev, NULL); +	if (err < 0) +		goto err; +  	return dev;   err: -	free_netdev(dev); +	geneve_dellink(dev, &list_kill); +	unregister_netdevice_many(&list_kill);  	return ERR_PTR(err);  }  EXPORT_SYMBOL_GPL(geneve_dev_create_fb);  | 
