Re: [tip:x86/x32] x32: Fix alignment fail in struct compat_siginfo

From: H.J. Lu
Date: Wed Mar 14 2012 - 20:33:58 EST


On Wed, Mar 14, 2012 at 4:19 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
> On 03/14/2012 04:17 PM, H.J. Lu wrote:
>>
>> Just for the record, although the offsets of _utime and _stime are
>> multiple of 8 bytes, struct siginfo is only aligned at 4 bytes.  So
>> the addresses of  _utime and _stime may not be 8byte aligned.
>> But misaligned int64 load/store are OK for x86-64.
>>
>
> Yes; the real question I guess is where struct siginfo appears and if it
> is misaligned by construction.  It obviously appears in the signal stack
> frame but also in a couple of system calls.  It might be possible to put
> an __attribute__((aligned(8))) on the whole structure in the x32 case?

It is possible to add __attribute__((aligned(8))) on struct siginfo
in the x32 case. But it only affects system calls with struct siginfo.
The signal stack frame may still be misaligned.

--
H.J.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/