Hi! On Thu, Aug 16, 2018 at 02:14:39PM +1000, Michael Ellerman wrote: > Mahesh Jagannath Salgaonkar <mah...@linux.vnet.ibm.com> writes: > > On 08/08/2018 08:12 PM, Michael Ellerman wrote: > >>> + uint8_t reserved_1[6]; > >>> + __be64 effective_address; > >>> + __be64 logical_address; > >>> + } ue_error; > >>> + struct { > >>> + uint8_t soft_err_type; > >>> + /* XXXXXXXX > >>> + * X 1: Effective address provided. > >>> + * XXXXX 5: Reserved. > >>> + * XX 2: Type of SLB/ERAT/TLB error. > >>> + */ > >>> + uint8_t reserved_1[6]; > >>> + __be64 effective_address; > >>> + uint8_t reserved_2[8]; > >>> + } soft_error; > >>> + } u; > >>> +}; > >>> +#pragma pack(pop) > >> > >> Why not __packed ? > > > > Because when used __packed it added 1 byte extra padding between > > reserved_1[6] and effective_address. That caused wrong effective address > > to be printed on the console. Hence I switched to #pragma pack to force > > 1 byte alignment for this structure alone. > > OK, that's weird.
Yes, if that is true, then please open a GCC bugzilla report. Segher