On Fri, Feb 23, 2018 at 11:27:34PM +0100, Sebastian Andrzej Siewior wrote: > The irq_remap_table is allocated while the iommu_table_lock is held with > interrupts disabled. While this works it makes RT scream very loudly. > >From looking at the call sites, all callers are in the early device > initialisation (apic_bsp_setup(), pci_enable_device(), > pci_enable_msi()) so make sense to drop the lock which also enables > interrupts and try to allocate that memory with GFP_KERNEL instead > GFP_ATOMIC. > > Since during the allocation the iommu_table_lock is dropped, we need to > recheck if table exists after the lock has been reacquired. I *think* > that it is impossible that the "devid" entry appears in irq_lookup_table > while the lock is dropped since the same device can only be probed once. > It is more likely that another device added an `alias' entry. However I > check for both cases, just to be sure. > > Signed-off-by: Sebastian Andrzej Siewior <bige...@linutronix.de>
This looks like it conflicts with the x86/amd branch as well. _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu