AMD IOMMU: Add deallocation for interrupt remapping table.
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 31 Jul 2008 12:36:45 +0000 (13:36 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 31 Jul 2008 12:36:45 +0000 (13:36 +0100)
Signed-off-by: Wei Wang <wei.wang2@amd.com>
xen/drivers/passthrough/amd/iommu_intr.c

index ef31c5dd6e1dcf2f06d0c119cde9bb2344203c92..e6ade3a10b3f352ef48cdf40112ce84b2fded6c6 100644 (file)
@@ -107,7 +107,7 @@ static void update_intremap_entry_from_ioapic(
     return;
 }
 
-int amd_iommu_setup_intremap_table(void)
+int __init amd_iommu_setup_intremap_table(void)
 {
     unsigned long flags;
 
@@ -203,3 +203,18 @@ void amd_iommu_msi_msg_update_ire(
 
     update_intremap_entry_from_msi_msg(iommu, pdev, msg);
 }
+
+int __init deallocate_intremap_table(void)
+{
+    unsigned long flags;
+
+    spin_lock_irqsave(&int_remap_table_lock, flags);
+    if ( int_remap_table )
+    {
+        free_xenheap_pages(int_remap_table, 1);
+        int_remap_table = NULL;
+    }
+    spin_unlock_irqrestore(&int_remap_table_lock, flags);
+
+    return 0;
+}