|
@@ -464,7 +464,11 @@ static void vp_del_vq(struct virtqueue *vq)
|
|
|
{
|
|
|
struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev);
|
|
|
struct virtio_pci_vq_info *info = vq->priv;
|
|
|
- unsigned long size;
|
|
|
+ unsigned long flags, size;
|
|
|
+
|
|
|
+ spin_lock_irqsave(&vp_dev->lock, flags);
|
|
|
+ list_del(&info->node);
|
|
|
+ spin_unlock_irqrestore(&vp_dev->lock, flags);
|
|
|
|
|
|
iowrite16(info->queue_index, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_SEL);
|
|
|
|