From: Luca Fancellu Date: Wed, 14 Apr 2021 09:14:03 +0000 (+0100) Subject: xen/arm: Clarify how the domid is decided in create_domUs() X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~689 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b3d1f523c8de3a6657b11456a56bd8f5e67e247b;p=xen.git xen/arm: Clarify how the domid is decided in create_domUs() This patch adds a comment in create_domUs() right before domain_create() to explain the importance of the pre-increment operator on the variable max_init_domid, to ensure that the domid 0 is allocated only during start_xen() function by the create_dom0() and not on any other possible code path to the domain_create() function. Signed-off-by: Luca Fancellu Reviewed-by: Bertrand Marquis Acked-by: Julien Grall --- diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 359957dc1b..b1d7b9849f 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -2508,6 +2508,11 @@ void __init create_domUs(void) GUEST_VPL011_SPI - 32 + 1); } + /* + * The variable max_init_domid is initialized with zero, so here it's + * very important to use the pre-increment operator to call + * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0) + */ d = domain_create(++max_init_domid, &d_cfg, false); if ( IS_ERR(d) ) panic("Error creating domain %s\n", dt_node_name(node));