[PATCH RESEND] unicore32: Fix build error

From: Guenter Roeck
Date: Sun Aug 31 2014 - 14:15:09 EST


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.

Fixes: 649671c90eaf ("unicore32: Use get_signal() signal_setup_done()")
Cc: Richard Weinberger <richard@xxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
---
Resending after rebase to current upstream kernel.

Linus, please consider adding this patch directly to your tree.
This is the one remaining build failure regression in the upstream kernel.

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;
}
--
1.9.1

Attachment: signature.asc
Description: Digital signature