iwlwifi: mvm: fix beacon filtering temperature thresholds for D0i3
[firefly-linux-kernel-4.4.55.git] / drivers / net / xen-netfront.c
index 3f45afd4382e164053dac1231978e91a5af6dbe0..56d8afd11077de5d1f7b475bba37d1164c92bf41 100644 (file)
@@ -733,7 +733,7 @@ static int xennet_get_responses(struct netfront_queue *queue,
                if (unlikely(rx->status < 0 ||
                             rx->offset + rx->status > PAGE_SIZE)) {
                        if (net_ratelimit())
-                               dev_warn(dev, "rx->offset: %x, size: %u\n",
+                               dev_warn(dev, "rx->offset: %u, size: %d\n",
                                         rx->offset, rx->status);
                        xennet_move_rx_slot(queue, skb, ref);
                        err = -EINVAL;
@@ -1560,9 +1560,8 @@ static int xennet_init_queue(struct netfront_queue *queue)
        spin_lock_init(&queue->tx_lock);
        spin_lock_init(&queue->rx_lock);
 
-       init_timer(&queue->rx_refill_timer);
-       queue->rx_refill_timer.data = (unsigned long)queue;
-       queue->rx_refill_timer.function = rx_refill_timeout;
+       setup_timer(&queue->rx_refill_timer, rx_refill_timeout,
+                   (unsigned long)queue);
 
        snprintf(queue->name, sizeof(queue->name), "%s-q%u",
                 queue->info->netdev->name, queue->id);
@@ -1698,6 +1697,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 +2102,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 +2109,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;