From: mark gross I screwed up with my earlier patch to enable the portected memroy. The macro IOMMU_WAIT, exits when the condition goes true. Without this patch the code will hang at boot and some ( all?) vtd enabled systems. Signed-off-by: mark gross Cc: Muli Ben-Yehuda Signed-off-by: Andrew Morton --- drivers/pci/intel-iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/pci/intel-iommu.c~intel-iommu-pmen-support-fix drivers/pci/intel-iommu.c --- a/drivers/pci/intel-iommu.c~intel-iommu-pmen-support-fix +++ a/drivers/pci/intel-iommu.c @@ -704,7 +704,7 @@ static void iommu_disable_protect_mem_re /* wait for the protected region status bit to clear */ IOMMU_WAIT_OP(iommu, DMAR_PMEN_REG, - readl, (pmen & DMA_PMEN_PRS), pmen); + readl, !(pmen & DMA_PMEN_PRS), pmen); spin_unlock_irqrestore(&iommu->register_lock, flags); } _