• Al Viro's avatar
    parisc: optimizations in copy_thread() and friends · ff0ab8af
    Al Viro authored
    * in user thread case the registers had been copied as part of task_struct
    already; no need to do it in copy_thread().
    * no need to store kernel stack pointer into regs->r21; we know its offset
    anyway.
    * no need to clobber r3 in sys_fork_wrapper and friends - r28 will do just
    as well and *it* will be overwritten anyway.
    * no need to mess with storing the return address for child - it should just
    use syscall_exit.
    * no need to bother with separate stack frame for sys_clone() - just branch
    there and be done with that.
    * no need to bother with wrapper_exit - we need it only on the child_return,
    so let's just do it there.
    * use the same ksp for kernel threads and userland ones, while we are at it,
    and let ret_from_kernel_execve() go through the normal syscall_exit.  More
    straightforward is better here...
    
    [fixes from jejb folded]
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    ff0ab8af
process.c 9.05 KB