diff options
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
-rw-r--r-- | drivers/net/xen-netback/interface.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index 1a83e190fc15..28577a31549d 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c | |||
@@ -61,6 +61,12 @@ void xenvif_skb_zerocopy_prepare(struct xenvif_queue *queue, | |||
61 | void xenvif_skb_zerocopy_complete(struct xenvif_queue *queue) | 61 | void xenvif_skb_zerocopy_complete(struct xenvif_queue *queue) |
62 | { | 62 | { |
63 | atomic_dec(&queue->inflight_packets); | 63 | atomic_dec(&queue->inflight_packets); |
64 | |||
65 | /* Wake the dealloc thread _after_ decrementing inflight_packets so | ||
66 | * that if kthread_stop() has already been called, the dealloc thread | ||
67 | * does not wait forever with nothing to wake it. | ||
68 | */ | ||
69 | wake_up(&queue->dealloc_wq); | ||
64 | } | 70 | } |
65 | 71 | ||
66 | int xenvif_schedulable(struct xenvif *vif) | 72 | int xenvif_schedulable(struct xenvif *vif) |