Re: [PATCH] unicore32: Fix build error

Guenter Roeck
2014-08-15T19:38:07Z

On 08/10/2014 08:29 AM, Guenter Roeck wrote:
> unicore32 builds fail with
>
> arch/unicore32/kernel/signal.c: In function ‘setup_frame’:
> arch/unicore32/kernel/signal.c:257: error:
> ‘usig’ undeclared (first use in this function)
> arch/unicore32/kernel/signal.c:279: error:
> ‘usig’ undeclared (first use in this function)
> arch/unicore32/kernel/signal.c: In function ‘handle_signal’:
> arch/unicore32/kernel/signal.c:306: warning: unused variable ‘tsk’
> arch/unicore32/kernel/signal.c: In function ‘do_signal’:
> arch/unicore32/kernel/signal.c:376: error:
> implicit declaration of function ‘get_signsl’
> make[1]: *** [arch/unicore32/kernel/signal.o] Error 1
> make: *** [arch/unicore32/kernel/signal.o] Error 2
>
> Bisect points to commit 649671c90eaf ("unicore32: Use get_signal()
> signal_setup_done()").
>
> This code never even compiled. Reverting the patch does not work,
> since previously used functions no longer exist, so try to fix it up.
> Compile tested only.
>
> Cc: Richard Weinberger <richard@nod.at>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>

ping ...

Failure is still present in upstream kernel (v3.16-11383-gc9d2642).

Guenter

> ---
> arch/unicore32/kernel/signal.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/arch/unicore32/kernel/signal.c b/arch/unicore32/kernel/signal.c
> index 780d773..7c8fb70 100644
> --- a/arch/unicore32/kernel/signal.c
> +++ b/arch/unicore32/kernel/signal.c
> @@ -254,7 +254,8 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
>
> err |= setup_sigframe(frame, regs, set);
> if (err == 0)
> - err |= setup_return(regs, &ksig->ka, frame->retcode, frame, usig);
> + err |= setup_return(regs, &ksig->ka, frame->retcode, frame,
> + ksig->sig);
>
> return err;
> }
> @@ -276,7 +277,8 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
> err |= __save_altstack(&frame->sig.uc.uc_stack, regs->UCreg_sp);
> err |= setup_sigframe(&frame->sig, regs, set);
> if (err == 0)
> - err |= setup_return(regs, &ksig->ka, frame->sig.retcode, frame, usig);
> + err |= setup_return(regs, &ksig->ka, frame->sig.retcode, frame,
> + ksig->sig);
>
> if (err == 0) {
> /*
> @@ -303,7 +305,6 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs,
> int syscall)
> {
> struct thread_info *thread = current_thread_info();
> - struct task_struct *tsk = current;
> sigset_t *oldset = sigmask_to_save();
> int usig = ksig->sig;
> int ret;
> @@ -373,7 +374,7 @@ static void do_signal(struct pt_regs *regs, int syscall)
> if (!user_mode(regs))
> return;
>
> - if (get_signsl(&ksig)) {
> + if (get_signal(&ksig)) {
> handle_signal(&ksig, regs, syscall);
> return;
> }
>