]> xenbits.xensource.com Git - people/dariof/xen.git/commitdiff
AMD/IOMMU: initialize IRQ tasklet only once
authorJan Beulich <jbeulich@suse.com>
Fri, 21 Jun 2019 15:16:52 +0000 (17:16 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 21 Jun 2019 15:16:52 +0000 (17:16 +0200)
Don't do this once per IOMMU, nor after setting up the IOMMU interrupt
(which will want to schedule this tasklet). In fact it can be
initialized at build time.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Brian Woods <brian.woods@amd.com>
xen/drivers/passthrough/amd/iommu_init.c

index 72ea8824b0cb46089932ef062ce1866e9f6a3d46..5913277e528a5000f251beb01a6532751666b075 100644 (file)
@@ -31,7 +31,8 @@
 
 static int __initdata nr_amd_iommus;
 
-static struct tasklet amd_iommu_irq_tasklet;
+static void do_amd_iommu_irq(unsigned long data);
+static DECLARE_SOFTIRQ_TASKLET(amd_iommu_irq_tasklet, do_amd_iommu_irq, 0);
 
 unsigned int __read_mostly ivrs_bdf_entries;
 u8 __read_mostly ivhd_type;
@@ -1056,8 +1057,6 @@ static int __init amd_iommu_init_one(struct amd_iommu *iommu)
     printk("AMD-Vi: IOMMU %d Enabled.\n", nr_amd_iommus );
     nr_amd_iommus++;
 
-    softirq_tasklet_init(&amd_iommu_irq_tasklet, do_amd_iommu_irq, 0);
-
     return 0;
 
 error_out: