Re: [PATCH] android: binder: fix type mismatch warning

From: Greg Kroah-Hartman
Date: Mon Sep 18 2017 - 10:02:40 EST


On Tue, Sep 05, 2017 at 10:56:13AM +0200, Arnd Bergmann wrote:
> Allowing binder to expose the 64-bit API on 32-bit kernels caused a
> build warning:
>
> drivers/android/binder.c: In function 'binder_transaction_buffer_release':
> drivers/android/binder.c:2220:15: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
> fd_array = (u32 *)(parent_buffer + fda->parent_offset);
> ^
> drivers/android/binder.c: In function 'binder_translate_fd_array':
> drivers/android/binder.c:2445:13: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
> fd_array = (u32 *)(parent_buffer + fda->parent_offset);
> ^
> drivers/android/binder.c: In function 'binder_fixup_parent':
> drivers/android/binder.c:2511:18: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
>
> This adds extra type casts to avoid the warning.
>
> However, there is another problem with the Kconfig option: turning
> it on or off creates two incompatible ABI versions, a kernel that
> has this enabled cannot run user space that was built without it
> or vice versa. A better solution might be to leave the option hidden
> until the binder code is fixed to deal with both ABI versions.

I don't know if that is ever going to be fixed, as it's not an issue
that you will ever see "in the wild" from what I can tell...

thanks,

greg k-h