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 >