X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fvhost%2Fvhost.c;h=69068e0d8f31af183c075afe3026d60b09a0b55e;hb=831abf76643555a99b80a3b54adfa7e4fa0a3259;hp=9a9502a4aa5089519d338ca62b07a557069fb00d;hpb=9d2cd7048b1ec21309e2d1a32bf50732eb5d5de8;p=~andy%2Flinux diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 9a9502a4aa5..69068e0d8f3 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -161,9 +161,11 @@ void vhost_work_queue(struct vhost_dev *dev, struct vhost_work *work) if (list_empty(&work->node)) { list_add_tail(&work->node, &dev->work_list); work->queue_seq++; + spin_unlock_irqrestore(&dev->work_lock, flags); wake_up_process(dev->worker); + } else { + spin_unlock_irqrestore(&dev->work_lock, flags); } - spin_unlock_irqrestore(&dev->work_lock, flags); } EXPORT_SYMBOL_GPL(vhost_work_queue);