x86/apic/msi: Unbreak DMAR and HPET MSI
authorThomas Gleixner <tglx@linutronix.de>
Sun, 27 Sep 2020 08:46:44 +0000 (10:46 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 27 Sep 2020 19:53:41 +0000 (21:53 +0200)
Switching the DMAR and HPET MSI code to use the generic MSI domain ops
missed to add the flag which tells the core code to update the domain
operations with the defaults. As a consequence the core code crashes
when an interrupt in one of those domains is allocated.

Add the missing flags.

Fixes: 9006c133a422 ("x86/msi: Use generic MSI domain ops")
Reported-by: Qian Cai <cai@redhat.com>
Reported-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/87wo0fli8b.fsf@nanos.tec.linutronix.de
arch/x86/kernel/apic/msi.c

index 3b522b0..6313f0a 100644 (file)
@@ -309,6 +309,7 @@ static struct msi_domain_ops dmar_msi_domain_ops = {
 static struct msi_domain_info dmar_msi_domain_info = {
        .ops            = &dmar_msi_domain_ops,
        .chip           = &dmar_msi_controller,
+       .flags          = MSI_FLAG_USE_DEF_DOM_OPS,
 };
 
 static struct irq_domain *dmar_get_irq_domain(void)
@@ -408,6 +409,7 @@ static struct msi_domain_ops hpet_msi_domain_ops = {
 static struct msi_domain_info hpet_msi_domain_info = {
        .ops            = &hpet_msi_domain_ops,
        .chip           = &hpet_msi_controller,
+       .flags          = MSI_FLAG_USE_DEF_DOM_OPS,
 };
 
 struct irq_domain *hpet_create_irq_domain(int hpet_id)