X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=drivers%2Fvirtio%2Fvirtio_pci.c;h=79a31e5b4b68143a43a370ee422453ac723b2af6;hb=208bca0860406d16398145ddd950036a737c3c9d;hp=4bcc8b82640be13af193478aaa2c4699bc609d2b;hpb=366a2382c68d01638350efcf23d46a47d661c595;p=cascardo%2Flinux.git diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index 4bcc8b82640b..79a31e5b4b68 100644 --- a/drivers/virtio/virtio_pci.c +++ b/drivers/virtio/virtio_pci.c @@ -415,9 +415,13 @@ static struct virtqueue *setup_vq(struct virtio_device *vdev, unsigned index, } } - spin_lock_irqsave(&vp_dev->lock, flags); - list_add(&info->node, &vp_dev->virtqueues); - spin_unlock_irqrestore(&vp_dev->lock, flags); + if (callback) { + spin_lock_irqsave(&vp_dev->lock, flags); + list_add(&info->node, &vp_dev->virtqueues); + spin_unlock_irqrestore(&vp_dev->lock, flags); + } else { + INIT_LIST_HEAD(&info->node); + } return vq;