Looking at the oops, the crash occurs in pci_msi_domain_supports() at
offset +0x54, specifically on the dereference of domain->host_data (stored
in the 'info' variable) when accessing info->flags. The domain pointer
itself is not NULL and passes irq_domain_is_hierarchy(), so the early-exit
guard is bypassed, but host_data is NULL on this platform.

I noticed a relevant change between 6.11 and 6.12 in that function. In 6.11
the early-exit path was unconditional:

    if (!domain || !irq_domain_is_hierarchy(domain))
        return mode == ALLOW_LEGACY;

In 6.12 it became conditional on CONFIG_PCI_MSI_ARCH_FALLBACKS:

    if (!domain || !irq_domain_is_hierarchy(domain)) {
        if (IS_ENABLED(CONFIG_PCI_MSI_ARCH_FALLBACKS))
            return mode == ALLOW_LEGACY;
        return false;
    }

Perhaps CONFIG_PCI_MSI_ARCH_FALLBACKS=y isn't set for ppc64?

Reply via email to