numam-dpdk/drivers/bus
Andy Green dd6f8d712e bus/dpaa: fix 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:

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.

Fixes: c47ff048b9 ("bus/dpaa: add QMAN driver core routines")
Fixes: f6fadc3e63 ("bus/dpaa: add QMAN interface driver")
Cc: stable@dpdk.org

Signed-off-by: Andy Green <andy@warmcat.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-05-14 23:32:23 +02:00
..
dpaa bus/dpaa: fix inconsistent struct alignment 2018-05-14 23:32:23 +02:00
fslmc bus/fslmc: remove dead code 2018-05-14 01:01:04 +02:00
ifpga bus/fpga: use strlcpy instead of strncpy 2018-05-13 12:06:01 +02:00
pci bus/pci: replace strncpy by strlcpy 2018-05-14 23:32:23 +02:00
vdev bus/vdev: fix find device implementation 2018-04-27 16:31:49 +02:00
Makefile bus/ifpga: add Intel FPGA bus library 2018-05-11 17:08:32 +02:00
meson.build bus/ifpga: add Intel FPGA bus library 2018-05-11 17:08:32 +02:00