[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20061004185747.4cb64048.akpm@osdl.org>
Date: Wed, 4 Oct 2006 18:57:47 -0700
From: Andrew Morton <akpm@...l.org>
To: Inaky Perez-Gonzalez <inaky@...ux.intel.com>
Cc: Reinette Chatre <reinette.chatre@...ux.intel.com>,
Joe Korty <joe.korty@...r.com>, Paul Jackson <pj@....com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] bitmap: separate bitmap parsing for user buffer and
kernel buffer
On Wed, 4 Oct 2006 18:33:37 -0700
Inaky Perez-Gonzalez <inaky@...ux.intel.com> wrote:
> On Wednesday 04 October 2006 18:10, Andrew Morton wrote:
> > On Wed, 4 Oct 2006 17:56:30 -0700
> > Reinette Chatre <reinette.chatre@...ux.intel.com> wrote:
> > > + if (is_user) {
> > > + if (__get_user(c, buf++))
> > > + return -EFAULT;
> > > + }
> > > + else
> > > + c = *buf++;
> >
> > Is this actually needed? __get_user(kernel_address) works OK and (believe
> > it or not, given all the stuff it involves) boils down to a single
> > instruction.
>
> We weren't too sure if that'd be true in all kinds of arches and
> memory models. If it works for kernel space too, then we can fold
> out a lot of code...
We use __get_user() in this fashion in several places in core kernel
already, although it's usually to find out "will this address give me a
fault", rather than to actually read a value.
There's some precedent for the `is_user' approach as well - it has the
advantage of being more sparse-friendly, and perhaps clearer to read.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists