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

Re: [PATCH 1/2] xen/arm: address violations of Rule 11.3


  • To: "victorm.lira@xxxxxxx" <victorm.lira@xxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Wed, 9 Jul 2025 17:07:32 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • 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=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=jCwlIH8COZL1JQdKqYBF0FMWj6uSZrvmfFswrhZBnII=; b=HPesL8KsBFYjNjTMXAHENQonUwhPAzmpapaLAGYsXzI6ivrGwkwcFUbdQgA4A16q4MIloP4gPwAbVDF79R4/wKR7hAJlltckMFxXo48VHGscRfL6LaMJ+P6Y/Hj5zNg56I60s9iI6pwTtI262RBkW8/T2AXC0KSEZB/sSm5bDyk+m7s+DSj7WUtXFEGgIB7KI/Rpttj/GszVGxM/b02YGTNnmmRYBIMoRyleFe5KEKt5edCQF5cSjt+kmKxb12KFKs+C3ltJIHVEtj93BmrgQKTykG+Z/+QFTte+00booFyvhxvqII4xqLArGNwY2U/UhIrRbamLI5fSLQuDJAUBIQ==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=jCwlIH8COZL1JQdKqYBF0FMWj6uSZrvmfFswrhZBnII=; b=iHIFH8xRhalShWHQqO6w31BEUZPERUAWfk/7glnFGjCH/gOyeOIM/ENAn9/a6lYM1ytqMYxuGskkSUs9KT/jKQxDWNq9L82G0jXZxeKVJ6wG7n8ZZv87uqogNCyzRmDtUZqm27g8+bG/K4G2QbUi+kGbqC0owHb0Z7tMfqCx8h0TUkMN82JnFdHKth4Ut2FlaBtx85Jr90iKNibVfGXw0WLoNgN/RAaRaStPWMCg5VTbb7o4cxzDm66iJ/TMUsNHHtAxu8CYRcdZeOeD1OcoqOLdluZeFP8ZdvSLg2yaXEJe1ABUZbvWMhOejomGcK4Z7fdVOkOSzs2uZEvjyxxWLg==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=DiX1A947Sbb21PAATAwxSbCu1Bzmval88FD35gLoSSydhiEmGc89a3q8opb2X/s8vaE0W5xuHD+x/9kxTVLzUgO4aBK8qhOqjxE6cybPCxjefTnWVpTW/28C0PixlMJ47g10WdxFs09VlKHUG18AQ5p8ziOsSP9W5pmeHA+MgL6/2eSNf5x5whNShh1gjdu2I4Dkdajf+K7mZvuPW5dieN+rgjiLFgCNJCirm5oYpHJQ8mPuoGdB6mWa1rgrnNkuC3uOL7JG3VKDZn46JxeCfckv+8pbXmv7KV+r15B4Pb/MEreZ7rQMKynHBo759aSjtxI413Xyx78wboZBPluMqQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yo6GqdsOD8VJN7oRIXvQzbxEle65YAJ9qWVKSMJtE4kJ42TFqLS//zifxkIy2sF4YYXkiVGVmribaB4NQtg2LX5z8YYWsFczaZCEvJQxks48Bml7sdp9NfwZrxdXw0luhKYqyyES5OoOkDc2YmXIf5PKSlf1e/zmnfy//YKLmGeK4xvN9kZSiJ/enWgcSApiZxrDEPMI/t6eXWUHB2uXVNYKC/7Nhjql0cl3HJybxKdYuNAjcZ6ZERhH7TBr+DHRkeRCX4erBl29OOtYnnEmu6q4u93rZ+i07TxtDrDtPIDCUUb4d5d0ZPRPomD6wzZyzdXUokox/GoD6xaHya3vmw==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Federico Serafini <federico.serafini@xxxxxxxxxxx>
  • Delivery-date: Wed, 09 Jul 2025 17:08:31 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Thread-index: AQHb5J3Pz2S+k9t5Ik+DkcjAkJZMKLQqHqGA
  • Thread-topic: [PATCH 1/2] xen/arm: address violations of Rule 11.3

Hi Nicola,

> On 24 Jun 2025, at 02:20, victorm.lira@xxxxxxx wrote:
> 
> From: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> 
> Use {get,put}_unaligned_t to ensure that reads and writes are
> safe to perform even on potentially misaligned pointers.
> 

Make sense as we convert a void* to uint32_t * so might be misaligned.

> Signed-off-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> Signed-off-by: Victor Lira <victorm.lira@xxxxxxx>

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

Cheers
Bertrand

> ---
> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> Cc: Michal Orzel <michal.orzel@xxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
> Cc: Julien Grall <julien@xxxxxxx>
> Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> Cc: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> Cc: Federico Serafini <federico.serafini@xxxxxxxxxxx>
> Cc: Bertrand Marquis <bertrand.marquis@xxxxxxx>
> ---
> xen/arch/arm/efi/efi-boot.h      | 9 +++++----
> xen/common/device-tree/bootfdt.c | 3 ++-
> 2 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index ee80560e13..12dbb6961f 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -9,6 +9,7 @@
> 
> #include <xen/device_tree.h>
> #include <xen/libfdt/libfdt.h>
> +#include <xen/unaligned.h>
> #include <asm/setup.h>
> #include <asm/smp.h>
> 
> @@ -85,7 +86,7 @@ static int __init setup_chosen_node(void *fdt, int 
> *addr_cells, int *size_cells)
>         *addr_cells = 2;
>     }
>     else
> -        *addr_cells = fdt32_to_cpu(*((uint32_t *)prop->data));
> +        *addr_cells = fdt32_to_cpu(get_unaligned_t(uint32_t, prop->data));
> 
>     prop = fdt_get_property(fdt, node, "#size-cells", &len);
>     if ( !prop )
> @@ -96,7 +97,7 @@ static int __init setup_chosen_node(void *fdt, int 
> *addr_cells, int *size_cells)
>         *size_cells = 2;
>     }
>     else
> -        *size_cells = fdt32_to_cpu(*((uint32_t *)prop->data));
> +        *size_cells = fdt32_to_cpu(get_unaligned_t(uint32_t, prop->data));
> 
>     /*
>      * Make sure ranges is empty if it exists, otherwise create empty ranges
> @@ -824,7 +825,7 @@ static int __init handle_dom0less_domain_node(const 
> EFI_LOADED_IMAGE *loaded_ima
>         return ERROR_MISSING_DT_PROPERTY;
>     }
> 
> -    addr_cells = fdt32_to_cpu(*((uint32_t *)prop->data));
> +    addr_cells = fdt32_to_cpu(get_unaligned_t(uint32_t, prop->data));
> 
>     prop = fdt_get_property(fdt_efi, domain_node, "#size-cells", &len);
>     if ( !prop )
> @@ -833,7 +834,7 @@ static int __init handle_dom0less_domain_node(const 
> EFI_LOADED_IMAGE *loaded_ima
>         return ERROR_MISSING_DT_PROPERTY;
>     }
> 
> -    size_cells = fdt32_to_cpu(*((uint32_t *)prop->data));
> +    size_cells = fdt32_to_cpu(get_unaligned_t(uint32_t, prop->data));
> 
>     /* Check for nodes compatible with multiboot,module inside this node */
>     for ( module_node = fdt_first_subnode(fdt_efi, domain_node);
> diff --git a/xen/common/device-tree/bootfdt.c 
> b/xen/common/device-tree/bootfdt.c
> index 529c91e603..9f255027ea 100644
> --- a/xen/common/device-tree/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -13,6 +13,7 @@
> #include <xen/lib.h>
> #include <xen/libfdt/libfdt-xen.h>
> #include <xen/sort.h>
> +#include <xen/unaligned.h>
> #include <xsm/xsm.h>
> #include <asm/setup.h>
> #ifdef CONFIG_STATIC_SHM
> @@ -213,7 +214,7 @@ u32 __init device_tree_get_u32(const void *fdt, int node,
>     if ( !prop || prop->len < sizeof(u32) )
>         return dflt;
> 
> -    return fdt32_to_cpu(*(uint32_t*)prop->data);
> +    return fdt32_to_cpu(get_unaligned_t(uint32_t, prop->data));
> }
> 
> /**
> --
> 2.25.1


 


Rackspace

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