Re: [PATCH] bitmap: separate bitmap parsing for user buffer andkernel buffer

From: Andrew Morton
Date: Thu Oct 05 2006 - 16:39:53 EST


On 05 Oct 2006 21:57:04 +0200
Andi Kleen <ak@xxxxxxx> wrote:

> Andrew Morton <akpm@xxxxxxxx> writes:
>
> > On Wed, 4 Oct 2006 17:56:30 -0700
> > Reinette Chatre <reinette.chatre@xxxxxxxxxxxxxxx> 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.
>
> It is needed on lots of architectures that use separate address spaces
> like sparc64, m68k, s390 (and on x86 with 4:4 patches)
>

It needs set_fs(KERNEL_DS) if we're going to use __get_user() on both
callpaths.

I think we'll stick with the `is_user' version - less tricky, clearer.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/