> -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Andy Green > Sent: Friday, May 11, 2018 2:46 AM > To: dev@dpdk.org > Subject: [dpdk-dev] [PATCH v4 04/18] bus/dpaa: solve inconsistent struct > alignment > > The actual descriptor for qm_mr_entry is 64-byte aligned. > > But the original code plays a trick, and puts a u8 common to the three > descriptor > subtypes in the union afterwards outside their structure definitions. > > Unfortunately since they compose a struct qm_fd with alignment 8, this trick > destroys the ability of the compiler to understand what has happened, > resulting > in this kind of > problem: > > /home/agreen/projects/dpdk/drivers/bus/dpaa/include/ > fsl_qman.h:354:3: error: alignment 1 of ‘struct <anonymous>’ > is less than 8 [-Werror=packed-not-aligned] > } __packed dcern; > > on gcc 8 / Fedora 28 out of the box. > > This patch moves the u8 verb into the structure definitions composed into the > union, so the alignment of the parent struct containing the alignment 8 object > can also be seen to be alignment 8 by the compiler. Uses of .verb are fixed > up to > use .ern.verb (the same offset of +0 inside all the structs in the union). > > The final struct layout should be unchanged. > > Signed-off-by: Andy Green <a...@warmcat.com> > Acked-by: Hemant Agrawal <hemant.agra...@nxp.com> > Tested-by: Hemant Agrawal <hemant.agra...@nxp.com>
Missing fixes line and CC stable: Fixes: c47ff048b99a ("bus/dpaa: add QMAN driver core routines") Fixes: f6fadc3e6310 ("bus/dpaa: add QMAN interface driver") Cc: sta...@dpdk.org