irqchip/gic-v3-its: Move vlpi_map allocation to the vITS layer

The current life-cycle of VLPI mappings is pretty odd. Both the
ITS and the vgic layer allocate vlpi_map objects, and one gets
copied into the other, depending on the information flow.

This leads to a certain amount of complexity. Instead, change
the allocation policy to the vITS allocating the mapping objects,
and pass the responsibility of freeing the object to the physical
ITS driver. Structure layout changes allow the VLPI map pointers to
be allocated as part of the device structure, further simplifying
the code.

Signed-off-by: Marc Zyngier <maz@kernel.org>
3 files changed