[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [for-4.18][PATCH] xen/arm: Check return code from recursive calls to scan_pfdt_node()


  • To: Michal Orzel <michal.orzel@xxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Mon, 16 Oct 2023 13:28:32 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KtcWUclDk/W5Tue5yT/++53BeADNS5nlT3W4XvC0V/I=; b=hpuZLyM5Zp8NWxqIL0VNRMUoYsVaolO/uUFx1ltKLEdZOrYJzk4GiJQzqK/5x9UEBpLUqWliMP4xPbmKyl6ER8GEhDV+nEKBqbK+vc4Ltow9egEDrwBY/lU5f5IwhNNxJqmcMK7SGwSkVb+rdw6TXZgzVfjgsccQRq2CUC1Wvkl/POGBuNyb3PhYCEcWFW51MgRQuLNIpY6RMoY+35YYBS1OxCBE/7fny4jggbhAjQltp0TvDGKsMs/qPsU5ePZWUoS1JGs+QNIRzudRlHPO4CtbkyDiJFbHvPPkyT63+JW1cjR/PLLosv5r4PdIByvA//FrpUom+iggNQ/Asa5p3g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IjmqAvBxDd7fp8ZaR5ttw/6wO8fiNFMnOawlWohj1txscNl9XQaBzEhMRg4l1y8/5DCKdLsEwJAsPwNS3hj9ObB9yBKg19NzWl1zF8d7kOIoSbdgkBNPkGYDb9QYWFXgFt6rc8UjOJwaSs1W+wxR+mr3gQ45YUv/NKTiGa8HJrM+ypajUzm61oAEql6OFJfB99qpQtp4Qw4Dw2h21ilQSWL9q2TJtWihIdJnrBOzuTTjM9kCDzVxqL9YARsMkMXPN7n4trz+sAzGTDDXSdfAwmHyOLQuZxY1ReU4RULDTOLmA4yLK8CB5JW4Gv4nBzoon+ffxCCikAqLOfsThuiJGg==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Henry Wang <Henry.Wang@xxxxxxx>
  • Delivery-date: Mon, 16 Oct 2023 13:28:59 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHaAC7Lie8jJuWlekOvxY+/BGzxtLBMaOWA
  • Thread-topic: [for-4.18][PATCH] xen/arm: Check return code from recursive calls to scan_pfdt_node()

Hi Michal,

> On 16 Oct 2023, at 14:45, Michal Orzel <michal.orzel@xxxxxxx> wrote:
> 
> At the moment, we do not check a return code from scan_pfdt_node()
> called recursively. This means that any issue that may occur while
> parsing and copying the passthrough nodes is hidden and Xen continues
> to boot a domain despite errors. This may lead to incorrect device tree
> generation and various guest issues (e.g. trap on attempt to access MMIO
> not mapped in P2M). Fix it.
> 
> Fixes: 669ecdf8d6cd ("xen/arm: copy dtb fragment to guest dtb")
> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>

Good finding :-)

Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>

Cheers
Bertrand

> ---
> @Henry:
> This is a bug fix, so I think we should have it in 4.18 given the possible
> consequences I described in the commit msg. I don't see any risks as this 
> change
> only checks the return code for an error.
> ---
> xen/arch/arm/domain_build.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 24c9019cc43c..49792dd590ee 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2872,8 +2872,11 @@ static int __init scan_pfdt_node(struct kernel_info 
> *kinfo, const void *pfdt,
>     node_next = fdt_first_subnode(pfdt, nodeoff);
>     while ( node_next > 0 )
>     {
> -        scan_pfdt_node(kinfo, pfdt, node_next, address_cells, size_cells,
> -                       scan_passthrough_prop);
> +        rc = scan_pfdt_node(kinfo, pfdt, node_next, address_cells, 
> size_cells,
> +                            scan_passthrough_prop);
> +        if ( rc )
> +            return rc;
> +
>         node_next = fdt_next_subnode(pfdt, node_next);
>     }
> 
> -- 
> 2.25.1
> 




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.