On 3/25/25 6:15 PM, Bao D. Nguyen wrote:Thank you for the info on this, Bart.
The existing "struct utp_upiu_query_v4_0" probably has a bug in it. It does not use the __attribute__((__packed__)) attribute. The compiler is free to add padding in this structure, resulting in the read attribute value being incorrect. I plan to provide a separate patch to fix this issue.
Adding __attribute__((__packed__)) or __packed to data structures that
don't need it is not an improvement but is a change that makes
processing slower on architectures that do not support unaligned
accesses. Instead of adding __packed to data structures in their
entirety, only add it to those members that need it and check the
structure size as follows:
static_assert(sizeof(...) == ...);