[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20061027102834.5db261af.sfr@canb.auug.org.au>
Date: Fri, 27 Oct 2006 10:28:34 +1000
From: Stephen Rothwell <sfr@...b.auug.org.au>
To: Christoph Lameter <clameter@....com>
Cc: LKML <linux-kernel@...r.kernel.org>,
ppc-dev <linuxppc-dev@...abs.org>, paulus@...ba.org, ak@...e.de,
linux-mm@...ck.org
Subject: Re: [PATCH 2/3] Create compat_sys_migrate_pages
On Thu, 26 Oct 2006 12:00:30 -0700 (PDT) Christoph Lameter <clameter@....com> wrote:
>
> On Thu, 26 Oct 2006, Stephen Rothwell wrote:
>
> > This is needed on bigendian 64bit architectures. The obvious way to do
> > this (taking the other compat_ routines in this file as examples) is to
> > use compat_alloc_user_space and copy the bitmasks back there, however you
> > cannot call compat_alloc_user_space twice for a single system call and
> > this method saves two copies of the bitmasks.
>
> Well this means also that sys_mbind and sys_set_mempolicy are also
> broken because these functions also use get_nodes().
No they aren't because they have compat routines that convert the bitmaps
before calling the "normal" syscall. They, importantly, only use
compat_alloc_user_space once each.
> Fixing get_nodes() to do the proper thing would fix all of these
> without having to touch sys_migrate_pages or creating a compat_ function
> (which usually is placed in kernel/compat.c)
You need the compat_ version of the syscalls to know if you were called
from a 32bit application in order to know if you may need to fixup the
bitmaps that are passed from/to user mode.
--
Cheers,
Stephen Rothwell sfr@...b.auug.org.au
http://www.canb.auug.org.au/~sfr/
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists