On Mon, Aug 24 2020 at 06:59, Jürgen Groß wrote: > On 21.08.20 02:24, Thomas Gleixner wrote: >> +static __init void xen_setup_pci_msi(void) >> +{ >> + if (xen_initial_domain()) { >> + x86_msi.setup_msi_irqs = xen_initdom_setup_msi_irqs; >> + x86_msi.teardown_msi_irqs = xen_teardown_msi_irqs; >> + x86_msi.restore_msi_irqs = xen_initdom_restore_msi_irqs; >> + pci_msi_ignore_mask = 1; > > This is wrong, as a PVH initial domain shouldn't do the pv settings. > > The "if (xen_initial_domain())" should be inside the pv case, like: > > if (xen_pv_domain()) { > if (xen_initial_domain()) { > ... > } else { > ... > } > } else if (xen_hvm_domain()) { > ... I still think it does the right thing depending on the place it is called from, but even if so, it's completely unreadable gunk. I'll fix that proper. Thanks, tglx