diff options
author | Ross Lagerwall <ross.lagerwall@citrix.com> | 2015-08-04 17:40:59 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-08-07 09:42:48 +0300 |
commit | 57b229063ae6dc65036209018dc7f4290cc026bb (patch) | |
tree | a465b6e776bef923f818d6601c96516c452d85fe /drivers/net/xen-netback/netback.c | |
parent | a0a2a6602496a45ae838a96db8b8173794b5d398 (diff) | |
download | linux-57b229063ae6dc65036209018dc7f4290cc026bb.tar.xz |
xen/netback: Wake dealloc thread after completing zerocopy work
Waking the dealloc thread before decrementing inflight_packets is racy
because it means the thread may go to sleep before inflight_packets is
decremented. If kthread_stop() has already been called, the dealloc
thread may wait forever with nothing to wake it. Instead, wake the
thread only after decrementing inflight_packets.
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/xen-netback/netback.c')
-rw-r--r-- | drivers/net/xen-netback/netback.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 1b406e706a01..3f44b522b831 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c @@ -1541,7 +1541,6 @@ void xenvif_zerocopy_callback(struct ubuf_info *ubuf, bool zerocopy_success) smp_wmb(); queue->dealloc_prod++; } while (ubuf); - wake_up(&queue->dealloc_wq); spin_unlock_irqrestore(&queue->callback_lock, flags); if (likely(zerocopy_success)) |