Hi!
On Thu, Aug 16, 2018 at 02:14:39PM +1000, Michael Ellerman wrote:
Mahesh Jagannath Salgaonkar [off-list ref] writes:
quoted
On 08/08/2018 08:12 PM, Michael Ellerman wrote:
quoted
quoted
+ 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