• Shanker Donthineni's avatar
    irqchip/gicv3-its: Don't allow devices whose ID is outside range · 466b7d16
    Shanker Donthineni authored
    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: default avatarShanker Donthineni <shankerd@codeaurora.org>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    466b7d16
irq-gic-v3-its.c 39 KB