]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
iommu/hyper-v: Implement select() method on remapping irqdomain
authorDavid Woodhouse <dwmw@amazon.co.uk>
Tue, 13 Oct 2020 08:11:35 +0000 (09:11 +0100)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Sat, 24 Oct 2020 21:25:24 +0000 (22:25 +0100)
Preparatory for removing irq_remapping_get_irq_domain()

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/iommu/hyperv-iommu.c

index 37dd485a5640bc56fc8699d2aeec9c037aea54fd..78a264ad940576d8706db63234258377c74e457d 100644 (file)
@@ -101,7 +101,16 @@ static void hyperv_irq_remapping_free(struct irq_domain *domain,
        irq_domain_free_irqs_common(domain, virq, nr_irqs);
 }
 
+static int hyperv_irq_remapping_select(struct irq_domain *d,
+                                      struct irq_fwspec *fwspec,
+                                      enum irq_domain_bus_token bus_token)
+{
+       /* Claim only the first (and only) I/OAPIC */
+       return x86_fwspec_is_ioapic(fwspec) && fwspec->param[0] == 0;
+}
+
 static const struct irq_domain_ops hyperv_ir_domain_ops = {
+       .select = hyperv_irq_remapping_select,
        .alloc = hyperv_irq_remapping_alloc,
        .free = hyperv_irq_remapping_free,
 };