diff options
| author | Wei Liu <wei.liu2@citrix.com> | 2014-08-12 06:48:06 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2014-08-13 23:07:44 -0400 |
| commit | ea2c5e134237eadc9924ce821ded678750024549 (patch) | |
| tree | f54d00e659f58fbe53ba5683faa1f7c301b9c755 | |
| parent | 68809958710ac80e2fad387edd6383f422498f9e (diff) | |
xen-netback: move NAPI add/remove calls
Originally netif_napi_add was in xenvif_init_queue and netif_napi_del
was in xenvif_deinit_queue, while kthreads were handled in
xenvif_connect and xenvif_disconnect. Move netif_napi_add and
netif_napi_del to xenvif_connect and xenvif_disconnect so that they
reside together with kthread operations.
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Zoltan Kiss <zoltan.kiss@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/net/xen-netback/interface.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index bfd10cb9c8de..5f3d6c06fcf7 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c | |||
| @@ -524,9 +524,6 @@ int xenvif_init_queue(struct xenvif_queue *queue) | |||
| 524 | 524 | ||
| 525 | init_timer(&queue->rx_stalled); | 525 | init_timer(&queue->rx_stalled); |
| 526 | 526 | ||
| 527 | netif_napi_add(queue->vif->dev, &queue->napi, xenvif_poll, | ||
| 528 | XENVIF_NAPI_WEIGHT); | ||
| 529 | |||
| 530 | return 0; | 527 | return 0; |
| 531 | } | 528 | } |
| 532 | 529 | ||
| @@ -614,6 +611,9 @@ int xenvif_connect(struct xenvif_queue *queue, unsigned long tx_ring_ref, | |||
| 614 | wake_up_process(queue->task); | 611 | wake_up_process(queue->task); |
| 615 | wake_up_process(queue->dealloc_task); | 612 | wake_up_process(queue->dealloc_task); |
| 616 | 613 | ||
| 614 | netif_napi_add(queue->vif->dev, &queue->napi, xenvif_poll, | ||
| 615 | XENVIF_NAPI_WEIGHT); | ||
| 616 | |||
| 617 | return 0; | 617 | return 0; |
| 618 | 618 | ||
| 619 | err_rx_unbind: | 619 | err_rx_unbind: |
| @@ -672,6 +672,8 @@ void xenvif_disconnect(struct xenvif *vif) | |||
| 672 | for (queue_index = 0; queue_index < num_queues; ++queue_index) { | 672 | for (queue_index = 0; queue_index < num_queues; ++queue_index) { |
| 673 | queue = &vif->queues[queue_index]; | 673 | queue = &vif->queues[queue_index]; |
| 674 | 674 | ||
| 675 | netif_napi_del(&queue->napi); | ||
| 676 | |||
| 675 | if (queue->task) { | 677 | if (queue->task) { |
| 676 | del_timer_sync(&queue->rx_stalled); | 678 | del_timer_sync(&queue->rx_stalled); |
| 677 | kthread_stop(queue->task); | 679 | kthread_stop(queue->task); |
| @@ -704,7 +706,6 @@ void xenvif_disconnect(struct xenvif *vif) | |||
| 704 | void xenvif_deinit_queue(struct xenvif_queue *queue) | 706 | void xenvif_deinit_queue(struct xenvif_queue *queue) |
| 705 | { | 707 | { |
| 706 | free_xenballooned_pages(MAX_PENDING_REQS, queue->mmap_pages); | 708 | free_xenballooned_pages(MAX_PENDING_REQS, queue->mmap_pages); |
| 707 | netif_napi_del(&queue->napi); | ||
| 708 | } | 709 | } |
| 709 | 710 | ||
| 710 | void xenvif_free(struct xenvif *vif) | 711 | void xenvif_free(struct xenvif *vif) |
