Re: [PATCH] drm/amd/display: avoid unaligned access warnings

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

 



Applied.  Thanks!

On Tue, Feb 14, 2023 at 1:56 AM Jonathan Gray <jsg@xxxxxxxxx> wrote:
>
> When building on OpenBSD/arm64 with clang 15, unaligned access
> warnings are seen when a union is embedded inside a packed struct.
>
> drm/amd/display/dmub/inc/dmub_cmd.h:941:18: error: field
>   cursor_copy_src within 'struct dmub_rb_cmd_mall' is less aligned than
>   'union dmub_addr' and is usually due to 'struct dmub_rb_cmd_mall'
>   being packed, which can lead to unaligned accesses
>   [-Werror,-Wunaligned-access]
>         union dmub_addr cursor_copy_src; /**< Cursor copy address */
>                         ^
> drm/amd/display/dmub/inc/dmub_cmd.h:942:18: error: field cursor_copy_dst
>   within 'struct dmub_rb_cmd_mall' is less aligned than
>   'union dmub_addr' and is usually due to 'struct dmub_rb_cmd_mall'
>   being packed, which can lead to unaligned accesses
>   [-Werror,-Wunaligned-access]
>         union dmub_addr cursor_copy_dst; /**< Cursor copy destination */
>                         ^
>
> Add pragma pack around dmub_addr to avoid this.
>
> Signed-off-by: Jonathan Gray <jsg@xxxxxxxxx>
> ---
>  drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
> index 33907feefebb..dc92d06572a3 100644
> --- a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
> +++ b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
> @@ -162,6 +162,7 @@ extern "C" {
>  #define dmub_udelay(microseconds) udelay(microseconds)
>  #endif
>
> +#pragma pack(push, 1)
>  /**
>   * union dmub_addr - DMUB physical/virtual 64-bit address.
>   */
> @@ -172,6 +173,7 @@ union dmub_addr {
>         } u; /*<< Low/high bit access */
>         uint64_t quad_part; /*<< 64 bit address */
>  };
> +#pragma pack(pop)
>
>  /**
>   * Dirty rect definition.
> --
> 2.39.1
>



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux