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 3b522b098e92987ab4f0a5d69b864fc0e5e3ae35..6313f0a05db7a5526b7f51807c285a12d3c8d832 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)