[PATCH] drm/amd/display: avoid unaligned access warnings
Alex Deucher
alexdeucher at gmail.com
Wed Feb 15 04:29:18 UTC 2023
Applied. Thanks!
On Tue, Feb 14, 2023 at 1:56 AM Jonathan Gray <jsg at jsg.id.au> 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 at jsg.id.au>
> ---
> 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
>
More information about the amd-gfx
mailing list