diff options
Diffstat (limited to 'drivers/net/xen-netfront.c')
| -rw-r--r-- | drivers/net/xen-netfront.c | 15 | 
1 files changed, 2 insertions, 13 deletions
| diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 3f45afd4382e..e031c943286e 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -1698,6 +1698,7 @@ static void xennet_destroy_queues(struct netfront_info *info)  		if (netif_running(info->netdev))  			napi_disable(&queue->napi); +		del_timer_sync(&queue->rx_refill_timer);  		netif_napi_del(&queue->napi);  	} @@ -2102,9 +2103,6 @@ static const struct attribute_group xennet_dev_group = {  static int xennet_remove(struct xenbus_device *dev)  {  	struct netfront_info *info = dev_get_drvdata(&dev->dev); -	unsigned int num_queues = info->netdev->real_num_tx_queues; -	struct netfront_queue *queue = NULL; -	unsigned int i = 0;  	dev_dbg(&dev->dev, "%s\n", dev->nodename); @@ -2112,16 +2110,7 @@ static int xennet_remove(struct xenbus_device *dev)  	unregister_netdev(info->netdev); -	for (i = 0; i < num_queues; ++i) { -		queue = &info->queues[i]; -		del_timer_sync(&queue->rx_refill_timer); -	} - -	if (num_queues) { -		kfree(info->queues); -		info->queues = NULL; -	} - +	xennet_destroy_queues(info);  	xennet_free_netdev(info->netdev);  	return 0; |