diff -r 09ee974e722f xen/drivers/passthrough/amd/iommu_init.c --- a/xen/drivers/passthrough/amd/iommu_init.c Thu Jul 31 13:37:29 2008 +0100 +++ b/xen/drivers/passthrough/amd/iommu_init.c Thu Jul 31 15:34:03 2008 +0200 @@ -477,7 +477,10 @@ void __init enable_iommu(struct amd_iomm spin_lock_irqsave(&iommu->lock, flags); if ( iommu->enabled ) - return; + { + spin_unlock_irqrestore(&iommu->lock, flags); + return; + } iommu->dev_table.alloc_size = device_table.alloc_size; iommu->dev_table.entries = device_table.entries;