diff options
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
| -rw-r--r-- | drivers/net/xen-netback/interface.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index 037f74f0fcf6..3aa8648080c8 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c | |||
| @@ -80,7 +80,7 @@ static irqreturn_t xenvif_tx_interrupt(int irq, void *dev_id) | |||
| 80 | return IRQ_HANDLED; | 80 | return IRQ_HANDLED; |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | int xenvif_poll(struct napi_struct *napi, int budget) | 83 | static int xenvif_poll(struct napi_struct *napi, int budget) |
| 84 | { | 84 | { |
| 85 | struct xenvif_queue *queue = | 85 | struct xenvif_queue *queue = |
| 86 | container_of(napi, struct xenvif_queue, napi); | 86 | container_of(napi, struct xenvif_queue, napi); |
| @@ -340,12 +340,11 @@ static void xenvif_get_ethtool_stats(struct net_device *dev, | |||
| 340 | unsigned int num_queues = vif->num_queues; | 340 | unsigned int num_queues = vif->num_queues; |
| 341 | int i; | 341 | int i; |
| 342 | unsigned int queue_index; | 342 | unsigned int queue_index; |
| 343 | struct xenvif_stats *vif_stats; | ||
| 344 | 343 | ||
| 345 | for (i = 0; i < ARRAY_SIZE(xenvif_stats); i++) { | 344 | for (i = 0; i < ARRAY_SIZE(xenvif_stats); i++) { |
| 346 | unsigned long accum = 0; | 345 | unsigned long accum = 0; |
| 347 | for (queue_index = 0; queue_index < num_queues; ++queue_index) { | 346 | for (queue_index = 0; queue_index < num_queues; ++queue_index) { |
| 348 | vif_stats = &vif->queues[queue_index].stats; | 347 | void *vif_stats = &vif->queues[queue_index].stats; |
| 349 | accum += *(unsigned long *)(vif_stats + xenvif_stats[i].offset); | 348 | accum += *(unsigned long *)(vif_stats + xenvif_stats[i].offset); |
| 350 | } | 349 | } |
| 351 | data[i] = accum; | 350 | data[i] = accum; |
| @@ -483,9 +482,8 @@ int xenvif_init_queue(struct xenvif_queue *queue) | |||
| 483 | * better enable it. The long term solution would be to use just a | 482 | * better enable it. The long term solution would be to use just a |
| 484 | * bunch of valid page descriptors, without dependency on ballooning | 483 | * bunch of valid page descriptors, without dependency on ballooning |
| 485 | */ | 484 | */ |
| 486 | err = alloc_xenballooned_pages(MAX_PENDING_REQS, | 485 | err = gnttab_alloc_pages(MAX_PENDING_REQS, |
| 487 | queue->mmap_pages, | 486 | queue->mmap_pages); |
| 488 | false); | ||
| 489 | if (err) { | 487 | if (err) { |
| 490 | netdev_err(queue->vif->dev, "Could not reserve mmap_pages\n"); | 488 | netdev_err(queue->vif->dev, "Could not reserve mmap_pages\n"); |
| 491 | return -ENOMEM; | 489 | return -ENOMEM; |
| @@ -664,7 +662,7 @@ void xenvif_disconnect(struct xenvif *vif) | |||
| 664 | */ | 662 | */ |
| 665 | void xenvif_deinit_queue(struct xenvif_queue *queue) | 663 | void xenvif_deinit_queue(struct xenvif_queue *queue) |
| 666 | { | 664 | { |
| 667 | free_xenballooned_pages(MAX_PENDING_REQS, queue->mmap_pages); | 665 | gnttab_free_pages(MAX_PENDING_REQS, queue->mmap_pages); |
| 668 | } | 666 | } |
| 669 | 667 | ||
| 670 | void xenvif_free(struct xenvif *vif) | 668 | void xenvif_free(struct xenvif *vif) |
