Hi Dave,

iommu->root_entry_old_virt is used to store the mapped old rta.
iommu->root_entry_old_phys is used to store the physical address stored in registers.
So we must not free/unmap iommu->root_entry_old_phys .

Zhenhua
On 05/13/2015 04:56 PM, Baoquan He wrote:
+
+       iommu->root_entry_old_phys = q & VTD_PAGE_MASK;
+       if (!iommu->root_entry_old_phys) {
+               pr_err("Could not read old root entry address.");
+               return -1;
+       }
+

I didn't find where you call iounmap to free mapping of
iommu->root_entry_old_phys. Am I missing anything?

+       iommu->root_entry_old_virt = ioremap_cache(iommu->root_entry_old_phys,
+                                               VTD_PAGE_SIZE);
+       if (!iommu->root_entry_old_virt) {
+               pr_err("Could not map the old root entry.");
+               return -ENOMEM;
+       }


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to