On Mon, Dec 10, 2012 at 11:22 AM, James Hogan <james.hogan@xxxxxxxxxx> wrote: > On 08/12/12 03:43, H. Peter Anvin wrote: >> On 12/05/2012 08:08 AM, James Hogan wrote: >>> On 64 bit architectures with no efficient unaligned access, taskstats >>> has to add some padding to a reply to prevent unaligned access warnings. >>> However this also needs to apply to 32 bit architectures with 64 bit >>> struct alignment such as metag (which has 64 bit memory accesses). >> >> Wait... 64-bit struct alignment on structures with only 32-bit members? >> That might be... interesting... in a number of places... > > I'll rewrite the description as it's a bit misleading. On metag 64bit > struct alignment is required when it contains 64bit members, not if it > only contains 32bit members. Although metag is a 32bit arch, it can do > 64bit memory accesses which must be aligned. The C alignment rules should take care of this automatically (struct alignment is the maximum alignment of its members). You only have to override this manually in cases like this, where 64-bit quantities are stored in char arrays: struct buffer_data_page { u64 time_stamp; /* page time stamp */ local_t commit; /* write committed index */ - unsigned char data[]; /* data of buffer page */ + unsigned char data[] RB_ALIGN_DATA; /* data of buffer page */ }; (cfr. your other patch). Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html