From: Keir Fraser Date: Mon, 4 Aug 2008 10:12:15 +0000 (+0100) Subject: vtd: Fix a missing spin_unlock_irqrestore() X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14165^2~36 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3df4abafb50f32da655c8758720847dbd703627f;p=xen.git vtd: Fix a missing spin_unlock_irqrestore() Signed-off-by: Dexuan Cui --- diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c index 8de32f476b..e573bafd44 100644 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -632,7 +632,10 @@ static int iommu_set_root_entry(struct iommu *iommu) iommu->root_maddr = alloc_pgtable_maddr(); if ( iommu->root_maddr == 0 ) + { + spin_unlock_irqrestore(&iommu->register_lock, flags); return -ENOMEM; + } dmar_writeq(iommu->reg, DMAR_RTADDR_REG, iommu->root_maddr); cmd = iommu->gcmd | DMA_GCMD_SRTP;