Hi Michal,
> On 23 Nov 2022, at 14:39, Michal Orzel <[email protected]> wrote:
>
> When creating direct mapped domU, the vIRQ for vpl011 is taken from
> the SERHND_DTUART serial port using serial_irq. This function can return
> -1 (i.e. no interrupt found) in which case we should call a panic.
> However, vpl011_virq is defined as unsigned int which causes the panic
> to be unreachable, because less than zero comparison of an unsigned value
> can never be true. Fix it by defining vpl011_virq as int.
>
> Fixes: 3580c8b2dfc3 ("xen/arm: if direct-map domain use native UART address
> and IRQ number for vPL011")
> Signed-off-by: Michal Orzel <[email protected]>
Reviewed-by: Bertrand Marquis <[email protected]>
> ---
> To be considered to be taken for 4.17, although direct-map depends on
> CONFIG_STATIC_MEMORY which is marked as unsupported.
At this stage I do not think we should back port it for the release.
We should consider this as candidate for 4.17.1
Cheers
Bertrand
> ---
> xen/arch/arm/domain_build.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index bd30d3798c9a..71a3243f48c5 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -3897,7 +3897,7 @@ void __init create_domUs(void)
>
> if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
> {
> - unsigned int vpl011_virq = GUEST_VPL011_SPI;
> + int vpl011_virq = GUEST_VPL011_SPI;
>
> d_cfg.arch.nr_spis = gic_number_lines() - 32;
>
> --
> 2.25.1
>