diff options
Diffstat (limited to 'drivers/net/xen-netfront.c')
| -rw-r--r-- | drivers/net/xen-netfront.c | 23 | 
1 files changed, 12 insertions, 11 deletions
| diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 226faab2360..698b905058d 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -68,7 +68,7 @@ struct netfront_cb {  #define NET_TX_RING_SIZE __CONST_RING_SIZE(xen_netif_tx, PAGE_SIZE)  #define NET_RX_RING_SIZE __CONST_RING_SIZE(xen_netif_rx, PAGE_SIZE) -#define TX_MAX_TARGET min_t(int, NET_RX_RING_SIZE, 256) +#define TX_MAX_TARGET min_t(int, NET_TX_RING_SIZE, 256)  struct netfront_stats {  	u64			rx_packets; @@ -201,7 +201,7 @@ static void xennet_sysfs_delif(struct net_device *netdev);  #define xennet_sysfs_delif(dev) do { } while (0)  #endif -static int xennet_can_sg(struct net_device *dev) +static bool xennet_can_sg(struct net_device *dev)  {  	return dev->features & NETIF_F_SG;  } @@ -1190,7 +1190,8 @@ static void xennet_uninit(struct net_device *dev)  	gnttab_free_grant_references(np->gref_rx_head);  } -static u32 xennet_fix_features(struct net_device *dev, u32 features) +static netdev_features_t xennet_fix_features(struct net_device *dev, +	netdev_features_t features)  {  	struct netfront_info *np = netdev_priv(dev);  	int val; @@ -1216,7 +1217,8 @@ static u32 xennet_fix_features(struct net_device *dev, u32 features)  	return features;  } -static int xennet_set_features(struct net_device *dev, u32 features) +static int xennet_set_features(struct net_device *dev, +	netdev_features_t features)  {  	if (!(features & NETIF_F_SG) && dev->mtu > ETH_DATA_LEN) {  		netdev_info(dev, "Reducing MTU because no SG offload"); @@ -1707,7 +1709,6 @@ static void netback_changed(struct xenbus_device *dev,  	case XenbusStateInitialised:  	case XenbusStateReconfiguring:  	case XenbusStateReconfigured: -	case XenbusStateConnected:  	case XenbusStateUnknown:  	case XenbusStateClosed:  		break; @@ -1718,6 +1719,9 @@ static void netback_changed(struct xenbus_device *dev,  		if (xennet_connect(netdev) != 0)  			break;  		xenbus_switch_state(dev, XenbusStateConnected); +		break; + +	case XenbusStateConnected:  		netif_notify_peers(netdev);  		break; @@ -1910,7 +1914,7 @@ static void xennet_sysfs_delif(struct net_device *netdev)  #endif /* CONFIG_SYSFS */ -static struct xenbus_device_id netfront_ids[] = { +static const struct xenbus_device_id netfront_ids[] = {  	{ "vif" },  	{ "" }  }; @@ -1937,15 +1941,12 @@ static int __devexit xennet_remove(struct xenbus_device *dev)  	return 0;  } -static struct xenbus_driver netfront_driver = { -	.name = "vif", -	.owner = THIS_MODULE, -	.ids = netfront_ids, +static DEFINE_XENBUS_DRIVER(netfront, ,  	.probe = netfront_probe,  	.remove = __devexit_p(xennet_remove),  	.resume = netfront_resume,  	.otherend_changed = netback_changed, -}; +);  static int __init netif_init(void)  { | 
