AMD/IOMMU: process softirqs while dumping IRTs
authorJan Beulich <jbeulich@suse.com>
Tue, 29 Oct 2019 13:35:08 +0000 (14:35 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 29 Oct 2019 13:35:08 +0000 (14:35 +0100)
When there are sufficiently many devices listed in the ACPI tables (no
matter if they actually exist), output may take way longer than the
watchdog would like.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Brian Woods <brian.woods@amd.com>
master commit: df2030c34cc9161dd9e35c0e8c55057e101ac81a
master date: 2019-07-22 12:03:46 +0200

xen/drivers/passthrough/amd/iommu_intr.c

index d4ff8c18f93888aebd5298fd4af8fd3a1f3b9805..7daf3ec6a3ad9ee514cdd895107b0239b3649c1f 100644 (file)
@@ -22,6 +22,7 @@
 #include <asm/hvm/svm/amd-iommu-proto.h>
 #include <asm/io_apic.h>
 #include <xen/keyhandler.h>
+#include <xen/softirq.h>
 
 #define INTREMAP_TABLE_ORDER    1
 #define INTREMAP_LENGTH 0xB
@@ -698,6 +699,8 @@ static int dump_intremap_mapping(u16 seg, struct ivrs_mappings *ivrs_mapping)
     dump_intremap_table(ivrs_mapping->intremap_table);
     spin_unlock_irqrestore(&(ivrs_mapping->intremap_lock), flags);
 
+    process_pending_softirqs();
+
     return 0;
 }