]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
xen/arm: Fix unreachable panic for vpl011 vIRQ
authorMichal Orzel <michal.orzel@amd.com>
Wed, 23 Nov 2022 14:39:13 +0000 (15:39 +0100)
committerJulien Grall <jgrall@amazon.com>
Tue, 6 Dec 2022 18:19:50 +0000 (18:19 +0000)
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 <michal.orzel@amd.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
xen/arch/arm/domain_build.c

index bd30d3798c9adf6328ec6e1d9f6eadfbb5085a78..71a3243f48c5843e29bc1ea128aef9749ba76020 100644 (file)
@@ -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;