irqchip/gicv3-its: Fix mapping of LPIs to collections
authorMarc Zyngier <marc.zyngier@arm.com>
Fri, 17 Jul 2015 09:46:42 +0000 (10:46 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 17 Jul 2015 10:14:29 +0000 (12:14 +0200)
commit591e5bec13f15feb13fc445b6c9c59954711c4ac
treee886d45e83c15dbb3e67b7ea8c9c77a65de3e1cb
parent75a06189fc508a2acf470b0b12710362ffb2c4b1
irqchip/gicv3-its: Fix mapping of LPIs to collections

The GICv3 ITS architecture allows a given [DevID, EventID] pair to be
translated to a [LPI, Collection] pair, where DevID is the device writing
the MSI, EventID is the payload being written, LPI is the actual
interrupt number, and Collection is roughly equivalent to a target CPU.

Each LPI can be mapped to a separate collection, but the ITS driver
insists on maintaining the collection on a device basis, instead of doing
it on a per interrupt basis.

This is obviously flawed, and this patch fixes it by adding a per interrupt
index that indicates which collection number is in use.

Reported-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: <linux-arm-kernel@lists.infradead.org>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: stable@vger.kernel.org # 4.1, 4.0
Link: http://lkml.kernel.org/r/1437126402-11677-1-git-send-email-marc.zyngier@arm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/irqchip/irq-gic-v3-its.c