staging: android: binder: fix alignment issues
authorSerban Constantinescu <serban.constantinescu@arm.com>
Thu, 4 Jul 2013 09:54:46 +0000 (10:54 +0100)
committerDavid Butcher <david.butcher@arm.com>
Thu, 16 Jan 2014 14:10:32 +0000 (14:10 +0000)
commit6780a236302cc482c3261d03aec4f54437533500
treebd7c9e8723bee4521c0a859902911b1a8d9938d5
parent6fcd5e8cd07c1abc3ed37bd4cc5d87451b3ae191
staging: android: binder: fix alignment issues

The Android userspace aligns the data written to the binder buffers to
4bytes. Thus for 32bit platforms or 64bit platforms running an 32bit
Android userspace we can have a buffer looking like this:

platform    buffer(binder_cmd   pointer)      size
32/32                 32b         32b          8B
64/32                 32b         64b          12B
64/64                 32b         64b          12B

Thus the kernel needs to check that the buffer size is aligned to 4bytes
not to (void *) that will be 8bytes on 64bit machines.

The change does not affect existing 32bit ABI.

Change-Id: I7535f07301519623ea6334f525d312d687407ed4
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Acked-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/binder.c