On 7/15/24 20:33, Michael Kowal wrote:
> From: Frederic Barrat <fbarrat@linux.ibm.com>
>
> Fail VST entry address computation if firmware doesn't define a descriptor
> for one of the Virtualization Structure Tables (VST), there's no point in
> trying to compute the address of its entry. Abort the operation and log
> an error.
>
> Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
> Signed-off-by: Michael Kowal <kowal@linux.vnet.ibm.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> hw/intc/pnv_xive2.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/hw/intc/pnv_xive2.c b/hw/intc/pnv_xive2.c
> index 24ecab46a1..ad0d6f45e4 100644
> --- a/hw/intc/pnv_xive2.c
> +++ b/hw/intc/pnv_xive2.c
> @@ -244,6 +244,11 @@ static uint64_t pnv_xive2_vst_addr(PnvXive2 *xive, uint32_t type, uint8_t blk,
> }
>
> vsd = xive->vsds[type][blk];
> + if (vsd == 0) {
> + xive2_error(xive, "VST: vsd == 0 block id %d for VST %s %d !?",
> + blk, info->name, idx);
> + return 0;
> + }
>
> /* Remote VST access */
> if (GETFIELD(VSD_MODE, vsd) == VSD_MODE_FORWARD) {