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
pgpqwAgaPZPjb.pgp
Description: PGP signature