Re: [PATCH 1/2] openrisc: move sys_clone's stack determination tocopy_thread

From: Al Viro
Date: Thu Oct 25 2012 - 11:55:08 EST


On Thu, Oct 25, 2012 at 05:46:38PM +0200, Jonas Bonn wrote:
> Signed-off-by: Jonas Bonn <jonas@xxxxxxxxxxxx>
> ---
> arch/openrisc/kernel/process.c | 6 +++++-
> arch/openrisc/kernel/sys_or32.c | 8 +-------
> 2 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/arch/openrisc/kernel/process.c b/arch/openrisc/kernel/process.c
> index e0874b8..efbe4f8 100644
> --- a/arch/openrisc/kernel/process.c
> +++ b/arch/openrisc/kernel/process.c
> @@ -170,7 +170,11 @@ copy_thread(unsigned long clone_flags, unsigned long usp,
> } else {
> *userregs = *regs;
>
> - userregs->sp = usp;
> + if (usp)
> + userregs->sp = usp; /* clone */

OK

> + else
> + userregs->sp = regs->sp; /* fork/clone */

What for? userregs->sp will be equal to regs->sp at that point, unless
your compiler is very badly broken. You've copied *regs to *userregs
wholesale, just above that if...
--
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/