Thread (82 messages) 82 messages, 11 authors, 2013-01-07

Re: [PATCH v2 00/44] Meta Linux Kernel Port

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: 2012-12-05 18:39:25
Also in: lkml

On Wed, Dec 05, 2012 at 05:11:32PM +0000, Al Viro wrote:
On Wed, Dec 05, 2012 at 04:08:18PM +0000, James Hogan wrote:
quoted
other work not included:
* switch to generic kernel_{thread,execve} (will be posted separately to
  aid review)
quoted
other changes:
...
quoted
* switch to generic sys_execve
... which should've broken your kernel_execve().
BTW, one general note: lose the magical 7th argument.  In the few syscalls
that do need pt_regs, you can bloody well use current_pt_regs() instead;
it's what, (register & constant) + constant?  Passing it as explicit
argument is saving at most two arithmetical insns on those syscalls.
Moreover, for fork/clone/vfork we really don't need it until copy_thread();
one of the changes in -next kills passing pt_regs * to do_fork() and through
all that call chain (furthermore, if you make that
	childregs->ctx.AX[0].U0 = ALIGN(usp, 8);
in copy_thread() conditional on usp != 0, you can go with generic
variants from kernel/fork.c; again, see linux-next for examples of that).
What's left?  sigreturn and sigaltstack?

Seriously, drop that struct pt_regs *; it makes things uglier, (slightly)
hurts the syscall overhead and doesn't help the few syscalls that even
look at that argument.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help