diff --git a/hypervisor/dm/vpci/ivshmem.c b/hypervisor/dm/vpci/ivshmem.c index 6efac61b4..7e4247ba1 100644 --- a/hypervisor/dm/vpci/ivshmem.c +++ b/hypervisor/dm/vpci/ivshmem.c @@ -355,9 +355,12 @@ static void deinit_ivshmem_vdev(struct pci_vdev *vdev) struct ivshmem_device *ivs_dev = (struct ivshmem_device *) vdev->priv_data; ivshmem_server_unbind_peer(vdev); - ivs_dev->pcidev = NULL; + + spinlock_obtain(&ivshmem_dev_lock); vdev->priv_data = NULL; vdev->user = NULL; + ivs_dev->pcidev = NULL; + spinlock_release(&ivshmem_dev_lock); } /**