aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/xen-netback
diff options
context:
space:
mode:
authorWei Liu <wei.liu2@citrix.com>2014-08-12 06:48:06 -0400
committerDavid S. Miller <davem@davemloft.net>2014-08-13 23:07:44 -0400
commitea2c5e134237eadc9924ce821ded678750024549 (patch)
treef54d00e659f58fbe53ba5683faa1f7c301b9c755 /drivers/net/xen-netback
parent68809958710ac80e2fad387edd6383f422498f9e (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>
Diffstat (limited to 'drivers/net/xen-netback')
-rw-r--r--drivers/net/xen-netback/interface.c9
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
619err_rx_unbind: 619err_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)
704void xenvif_deinit_queue(struct xenvif_queue *queue) 706void 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
710void xenvif_free(struct xenvif *vif) 711void xenvif_free(struct xenvif *vif)