http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45819
--- Comment #2 from Atsushi Nemoto <anemo at mba dot ocn.ne.jp> 2010-09-28 16:26:17 UTC --- (In reply to comment #1) > (why use packed if the int is always aligned?) The original problem was found with this structure in linux ehci_def.h: struct ehci_caps { u32 hc_capbase; u32 hcs_params; /* HCSPARAMS - offset 0x4 */ u32 hcc_params; /* HCCPARAMS - offset 0x8 */ u8 portroute [8]; /* nibbles for routing - offset 0xC */ } __attribute__ ((packed)); In this case maybe the "packed" is not needed, but there will be other cases which require "packed" attribute on struct for memory-mapped I/O.