• Serban Constantinescu's avatar
    staging: binder: Fix ABI for 64bit Android · df24a2ea
    Serban Constantinescu authored
    BC_REQUEST_DEATH_NOTIFICATION and BC_CLEAR_DEATH_NOTIFICATION were
    defined with the wrong structure that did not match the code. Since a
    binder pointer and handle are the same size on 32 bit systems, this
    change does not affect them. The two commands claimed they were using
    struct binder_ptr_cookie but they are using a 32bit handle and a pointer.
    
    The main purpose of this patch is to add the binder_handle_cookie
    struct so the service manager does not have to define its own version
    (libbinder writes one field at a time so it does not use the struct).
    
    On 32bit systems the payload size is the same as the size of struct
    binder_ptr_cookie. On 64bit systems, the size does differ, and the
    ioctl number does change. However, there are no known 64bit users of
    this interface, and any 64bit systems will need the following patch to
    run 32 bit processes anyway, so it is not expected that anyone will
    ship a 64bit system without this change, so this change should not
    affect any existing systems.
    
    Cc: Colin Cross <ccross@android.com>
    Cc: Arve Hjønnevåg <arve@android.com>
    Cc: Serban Constantinescu <serban.constantinescu@arm.com>
    Cc: Android Kernel Team <kernel-team@android.com>
    Signed-off-by: default avatarSerban Constantinescu <serban.constantinescu@arm.com>
    [jstultz: Few 80+ col fixes for checkpatch, improved commit message
    with help from Serban, and included rational from Arve's email]
    Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    df24a2ea
binder.h 8.97 KB