On Mon, 2018-12-10 at 16:17 +0000, Lorenzo Pieralisi wrote: > On Tue, Nov 13, 2018 at 10:57:31PM +0000, Marc Zyngier wrote: > > It recently came to light that the Designware PCIe driver is rather > > broken in the way it handles MSI[1]: > > > > - It masks interrupt by disabling them, meaning that MSIs generated > > during the masked window are simply lost. Oops. > > > > - Acking of the currently pending MSI is done outside of the > > interrupt > > flow, getting moved around randomly and ultimately breaking the > > driver. Not great. > > > > > I have decided to queue this series - fixed-up as per this thread, > available at: > > git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git > test/pci-dwc-msi > > We allowed enough time for people to test it, we can't leave mainline > broken for the, apparently few, people who care. > > I *think* that this is the Fixes: tag to be added to all patches in > this > series, @Gustavo please countercheck: > > 7c5925afbc58 ("PCI: dwc: Move MSI IRQs allocation to IRQ domains > hierarchical API") That's not the correct Fixes. It should be: 8c934095fa2f ("PCI: dwc: Clear MSI interrupt status after it is handled, not before") I had concerns about what appears to be an unnecessary extra lock taken before handling an interrupt and enabling all MSIs even if nothing has tried to enable them.