On Thu, Sep 05, 2013 at 04:48:20PM +0800, WANG Chao wrote: > On 08/05/13 at 01:35pm, Vivek Goyal wrote: > > I think struct x86_linux_param_header should be packed. Strange that we > > did not do it so far. > > > > Without packing struct size was 3824 (decimal) on my x86_64 machine. With > > packing it is 3820. I think there was a padding of 4 bytes at the end. So > > it should be harmless. > > > > I tried to introduce more fields and that introduced padding in the > > middle of structure and kexec stopped working and that's how I got to > > know that bootparam is not packed. > > In this case that's true and x86_linux_param_header should be packed. > > One more thing is, > in include/x86/x86-linux.h, we already define PACKED macro: > #define PACKED __attribute__((packed)) > But within x86-linux.h, both PACKED_and __attribute__((packed)) are used. > > PACKED isn't used much time and __attribute__((packed)) is quite simple > and straightforward. Maybe it's time we can remove the macro and use > __attribute__((packed)) directly. > > I can send another patch to address this if anyone thinks it's a good > idea. I think there is really no need to use macro PACKED. So making the code uniform does not hurt. Thanks Vivek