All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: "Arve Hjønnevåg" <arve@android.com>
Cc: John Stultz <john.stultz@linaro.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Serban Constantinescu <serban.constantinescu@arm.com>,
	Colin Cross <ccross@android.com>,
	Android Kernel Team <kernel-team@android.com>
Subject: Re: [PATCH 12/14] staging: binder: Fix ABI for 64bit Android
Date: Tue, 18 Feb 2014 18:13:44 -0800	[thread overview]
Message-ID: <20140219021344.GA21896@kroah.com> (raw)
In-Reply-To: <CAMP5XgeFiLZZ0i0evCv5Jai02u+4QK1cOvrQpZqVcxFbHJ+C3A@mail.gmail.com>

On Tue, Feb 18, 2014 at 04:08:20PM -0800, Arve Hjønnevåg wrote:
> On Tue, Feb 18, 2014 at 12:32 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
> > On Tue, Feb 18, 2014 at 12:02:07PM -0800, John Stultz wrote:
> >> On Tue, Feb 18, 2014 at 11:49 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> >> > On Tue, Feb 18, 2014 at 11:30:26AM -0800, John Stultz wrote:
> >> >> On Tue, Feb 18, 2014 at 11:08 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> >> >> > On Mon, Feb 17, 2014 at 01:58:40PM -0800, John Stultz wrote:
> >> >> >> From: Serban Constantinescu <serban.constantinescu@arm.com>
> >> >> >>
> >> >> >> This patch fixes the ABI for 64bit Android userspace.
> >> >> >> BC_REQUEST_DEATH_NOTIFICATION and BC_CLEAR_DEATH_NOTIFICATION claim
> >> >> >> to be using struct binder_ptr_cookie, but they are using a 32bit handle
> >> >> >> and a pointer.
> >> >> >>
> >> >> >> On 32bit systems the payload size is the same as the size of struct
> >> >> >> binder_ptr_cookie, however for 64bit systems this will differ. This
> >> >> >> patch adds struct binder_handle_cookie that fixes this issue for 64bit
> >> >> >> Android.
> >> >> >>
> >> >> >> Since there are no 64bit users of this interface that we know of this
> >> >> >> change should not affect any existing systems.
> >> >> >
> >> >> > But you are changing the ioctl structures here, what is that going to
> >> >> > cause with old programs?
> >> >>
> >> >> So I'd be glad for Serban or Arve to clarify, but my understanding
> >> >> (and as is described in the commit message) is that the assumption is
> >> >> there are no 64bit binder users at this point, and the ioctl structure
> >> >> changes are made such that existing 32bit applications are unaffected.
> >> >
> >> > How does changing the structure size, and contents, not affect any
> >> > applications or the kernel code?  What am I missing here?
> >>
> >> On 32bit pointers and ints are the same size? (Years ago I sat through
> >> your presentation on this, so I'm worried I'm missing something here
> >> :)
> >>
> >> struct binder_ptr_cookie {
> >> void *ptr;
> >> void *cookie;
> >> };
> >>
> >> struct binder_handle_cookie {
> >> __u32 handle;
> >> void *cookie;
> >> } __attribute__((packed));
> >>
> >>
> >> On 32bit systems these are the same size.  Now on 64bit systems, this
> >> changes things, and would break users, but the assumption here is
> >> there are no pre-existing 64bit binder users.
> >
> > But you added a field to the existing structure, right?  I don't really
> > remember the patch, it was a few hundred back in my review of stuff
> > today, sorry...
> >
> > greg k-h
> 
> The existing structure is not changed. These two commands were defined
> with 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. On 64 bit systems, the ioctl number does change,
> but these systems need the next patch to run 32 bit processes anyway,
> so I don't expect anyone to ship a system without this change. 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).

Ah, ok, that makes more sense, can someone put it in the changelog
information so that I don't have to reject the patch for the same reason
again?

thanks,

greg k-h

  reply	other threads:[~2014-02-19  2:11 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-17 21:58 [PATCH 00/14][RFC] Android updates for staging-next John Stultz
2014-02-17 21:58 ` [PATCH 01/14] staging: binder: Fix death notifications John Stultz
2014-02-18 19:02   ` Greg KH
2014-02-18 19:21     ` John Stultz
2014-02-18 19:33       ` Greg KH
2014-02-17 21:58 ` [PATCH 02/14] staging: android: Split uapi out of android_alarm.h John Stultz
2014-02-17 21:58 ` [PATCH 03/14] staging: android: Split uapi out of ashmem.h John Stultz
2014-02-17 21:58 ` [PATCH 04/14] staging: android: split uapi out of sync.h and sw_sync.h John Stultz
2014-02-17 21:58 ` [PATCH 05/14] staging: android: Split uapi out of binder.h John Stultz
2014-02-17 21:58 ` [PATCH 06/14] staging: ion: Create separate heap and client debugfs directories John Stultz
2014-02-17 21:58 ` [PATCH 07/14] staging: ion: Fix debugfs handling of multiple kernel clients John Stultz
2014-02-17 21:58 ` [PATCH 08/14] staging: ion: Store a copy of the client name on client creation John Stultz
2014-02-17 21:58 ` [PATCH 09/14] staging: ion: Make sure all clients are exposed in debugfs John Stultz
2014-02-17 21:58 ` [PATCH 10/14] staging: ion: Move shrinker out of heaps John Stultz
2014-02-17 21:58 ` [PATCH 11/14] staging: ion: Add private buffer flag to skip page pooling on free John Stultz
2014-02-17 21:58 ` [PATCH 12/14] staging: binder: Fix ABI for 64bit Android John Stultz
2014-02-18 19:08   ` Greg KH
2014-02-18 19:30     ` John Stultz
2014-02-18 19:49       ` Greg KH
2014-02-18 20:02         ` John Stultz
2014-02-18 20:32           ` Greg KH
2014-02-19  0:08             ` Arve Hjønnevåg
2014-02-19  2:13               ` Greg KH [this message]
2014-02-17 21:58 ` [PATCH 13/14] staging: binder: Support concurrent 32 bit and 64 bit processes John Stultz
2014-02-18 19:09   ` Greg KH
2014-02-18 19:10   ` Greg KH
2014-02-18 19:43     ` John Stultz
2014-02-17 21:58 ` [PATCH 14/14] staging: binder: Improve Kconfig entry for ANDROID_BINDER_IPC_32BIT John Stultz
2014-02-19  0:18   ` Arve Hjønnevåg
2014-02-19  0:30     ` John Stultz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140219021344.GA21896@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=arve@android.com \
    --cc=ccross@android.com \
    --cc=john.stultz@linaro.org \
    --cc=kernel-team@android.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=serban.constantinescu@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.