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
> 


Reply via email to