On Tue, Aug 12, 2014 at 01:53:34PM -0500, Tom Musta wrote:
> The semun union used in the semctl system call contains both an int (val) and
> pointers.  In cross-endian situations on 64 bit targets, the value passed to
> semctl is an 8 byte (abi_long) value and thus does not have the 4-byte val
> field in the correct location.  In order to rectify this, the other half
> of the union must be accessed.  This is achieved in code by performing
> a byte swap on the entire 8 byte union, followed by a 4-byte swap of the
> first half.
> 
> Also, eliminate an extraneous (dead) line of code that sets target_su.val in
> the IPC_SET/IPC_GET case.
> 
> Signed-off-by: Tom Musta <tommu...@gmail.com>

Reviewed-by: David Gibson <da...@gibson.dropbear.id.au>

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: pgpqwAgaPZPjb.pgp
Description: PGP signature

Reply via email to