irqchip/gicv3-its: Don't allow devices whose ID is outside range
authorShanker Donthineni <shankerd@codeaurora.org>
Thu, 10 Mar 2016 04:10:49 +0000 (22:10 -0600)
committerMarc Zyngier <marc.zyngier@arm.com>
Wed, 11 May 2016 09:12:12 +0000 (10:12 +0100)
commit466b7d168881f477ec8ddcc42d4206618acccf18
tree96b415b03152d355262d9722d53d6e6c9bc81a4d
parent8cb17b5ed0177d1b613aadd53c7e570b81625728
irqchip/gicv3-its: Don't allow devices whose ID is outside range

We are not checking whether the requested device identifier fits into
the device table memory or not. The function its_create_device()
assumes that enough memory has been allocated for whole DevID space
(reported by ITS_TYPER.Devbits) during the ITS probe() and continues
to initialize ITS hardware.

This assumption is not perfect, sometimes we reduce memory size either
because of its size crossing MAX_ORDER-1 or BASERn max size limit. The
MAPD command fails if 'Device ID' is outside of device table range.

Add a simple validation check to avoid MAPD failures since we are
not handling ITS command errors. This change also helps to return an
error -ENOMEM instead of success to caller.

Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-v3-its.c
This page took 0.042129 seconds and 5 git commands to generate.