diff options
Diffstat (limited to 'drivers/net/xen-netback')
-rw-r--r-- | drivers/net/xen-netback/common.h | 2 | ||||
-rw-r--r-- | drivers/net/xen-netback/interface.c | 2 | ||||
-rw-r--r-- | drivers/net/xen-netback/netback.c | 34 |
3 files changed, 1 insertions, 37 deletions
diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h index bef37be402b8..0355f8767e3b 100644 --- a/drivers/net/xen-netback/common.h +++ b/drivers/net/xen-netback/common.h @@ -137,8 +137,6 @@ struct xenvif { u16 dealloc_ring[MAX_PENDING_REQS]; struct task_struct *dealloc_task; wait_queue_head_t dealloc_wq; - struct timer_list dealloc_delay; - bool dealloc_delay_timed_out; /* Use kthread for guest RX */ struct task_struct *task; diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index a6a8c1579eb9..23bb2f4b18fe 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c @@ -407,7 +407,6 @@ struct xenvif *xenvif_alloc(struct device *parent, domid_t domid, .desc = i }; vif->grant_tx_handle[i] = NETBACK_INVALID_HANDLE; } - init_timer(&vif->dealloc_delay); /* * Initialise a dummy MAC address. We choose the numerically @@ -556,7 +555,6 @@ void xenvif_disconnect(struct xenvif *vif) } if (vif->dealloc_task) { - del_timer_sync(&vif->dealloc_delay); kthread_stop(vif->dealloc_task); vif->dealloc_task = NULL; } diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 5a8c4a43c522..1f595e51791e 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c @@ -133,11 +133,6 @@ static inline pending_ring_idx_t pending_index(unsigned i) return i & (MAX_PENDING_REQS-1); } -static inline pending_ring_idx_t nr_free_slots(struct xen_netif_tx_back_ring *ring) -{ - return ring->nr_ents - (ring->sring->req_prod - ring->rsp_prod_pvt); -} - bool xenvif_rx_ring_slots_available(struct xenvif *vif, int needed) { RING_IDX prod, cons; @@ -1718,36 +1713,9 @@ static inline int tx_work_todo(struct xenvif *vif) return 0; } -static void xenvif_dealloc_delay(unsigned long data) -{ - struct xenvif *vif = (struct xenvif *)data; - - vif->dealloc_delay_timed_out = true; - wake_up(&vif->dealloc_wq); -} - static inline bool tx_dealloc_work_todo(struct xenvif *vif) { - if (vif->dealloc_cons != vif->dealloc_prod) { - if ((nr_free_slots(&vif->tx) > 2 * XEN_NETBK_LEGACY_SLOTS_MAX) && - (vif->dealloc_prod - vif->dealloc_cons < MAX_PENDING_REQS / 4) && - !vif->dealloc_delay_timed_out) { - if (!timer_pending(&vif->dealloc_delay)) { - vif->dealloc_delay.function = - xenvif_dealloc_delay; - vif->dealloc_delay.data = (unsigned long)vif; - mod_timer(&vif->dealloc_delay, - jiffies + msecs_to_jiffies(1)); - - } - return false; - } - del_timer_sync(&vif->dealloc_delay); - vif->dealloc_delay_timed_out = false; - return true; - } - - return false; + return vif->dealloc_cons != vif->dealloc_prod; } void xenvif_unmap_frontend_rings(struct xenvif *vif) |