Re: [PATCH] introduce kernel_execve function to replace __KERNEL_SYSCALLS__

Russell King
2006-08-21T15:17:31Z

On Mon, Aug 21, 2006 at 05:12:17PM +0200, Arnd Bergmann wrote:
> On Monday 21 August 2006 02:36, Paul Mackerras wrote:
> > > Iit turned out most of the architectures that already implement
> > > their own execve() call instead of using the _syscall3 function
> > > for it end up passing the return value of sys_execve down,
> > > instead of setting errno.
> >
> > I really don't like having an "errno" variable in the kernel. ?What if
> > two processes are doing an execve concurrently?
>
> The point is that we have two different schemes in the kernel that
> conflict:
>
> alpha, arm{,26}, ia64, parisc, powerpc and x86_64 pass the error
> code from execve, all others pass -1 and set the global errno.

Indeed, and rather than fixing execve() for one set of architectures
and by doing that breaking the other set, the point of this change is
to fix _all_ architectures in the most expedient way.

At a later date, those architectures who are using the global errno
can have that _separate_ bug fixed.

Let's fix one bug at a time. Especially as this probably needs to go
in to -rc.

Arnd - thanks for taking this on.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core