On Mon, Jan 28, 2019 at 06:00:15PM +0100, Ard Biesheuvel wrote: > From: Marc Zyngier <marc.zyngier@xxxxxxx> > > Commit 8208d1708b88b412ca97f50a6d951242c88cbbac upstream. > > The way we allocate events works fine in most cases, except > when multiple PCI devices share an ITS-visible DevID, and that > one of them is trying to use MultiMSI allocation. > > In that case, our allocation is not guaranteed to be zero-based > anymore, and we have to make sure we allocate it on a boundary > that is compatible with the PCI Multi-MSI constraints. > > Fix this by allocating the full region upfront instead of iterating > over the number of MSIs. MSI-X are always allocated one by one, > so this shouldn't change anything on that front. > > Fixes: b48ac83d6bbc2 ("irqchip: GICv3: ITS: MSI support") > Cc: <stable@xxxxxxxxxxxxxxx> # v4.4 - v4.9 > Reported-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > Tested-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > [ardb: rebased onto v4.9.153, should apply cleanly onto v4.4.y as well] > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > --- > drivers/irqchip/irq-gic-v3-its.c | 25 ++++++++++---------- > 1 file changed, 13 insertions(+), 12 deletions(-) Now queued up, thanks. greg k-h