dd6f8d712e
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: |
||
---|---|---|
.. | ||
dpaa | ||
fslmc | ||
ifpga | ||
pci | ||
vdev | ||
Makefile | ||
meson.build |