> From: David Miller <davem@xxxxxxxxxxxxx> > Sent: Thursday, April 8, 2021 5:41 PM > > ... > > In the driver code, all the structs/unions marked by __packed are used to > > talk with the hardware, so I think __packed is necessary here? > > It actually isan't in many cases, check with and without the __packed directive > and see if anything chasnges. Will do. > > Do you think if it's better if we remove all the __packed, and add > > static_assert(sizeof(struct XXX) == YYY) instead? e.g. > > > > @@ -105,7 +105,8 @@ struct gdma_msg_hdr { > > u16 msg_version; > > u16 hwc_msg_id; > > u32 msg_size; > > -} __packed; > > +}; > > +static_assert(sizeof(struct gdma_msg_hdr) == 16); > > This won't make sure the structure member offsets are what you expect. > > I think you'll have to go through the structures one-by-one by hand to > figure out which ones really require the __packed attribute and which do not. Got it. Let me see if I can remove all the __packed.