s390: remove dead code from signal handler
The code in entry[64].S calls do_signal only on return to user space. user_mode(regs) is true for every calls to do_signal, it is unnecessary to recheck user_mode at the start of do_signal and the legacy signal stack switching path in get_sigframe is never reached. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
a686425b31
commit
c15787a7c3
|
@ -437,13 +437,6 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)
|
||||||
sp = current->sas_ss_sp + current->sas_ss_size;
|
sp = current->sas_ss_sp + current->sas_ss_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is the legacy signal stack switching. */
|
|
||||||
else if (!user_mode(regs) &&
|
|
||||||
!(ka->sa.sa_flags & SA_RESTORER) &&
|
|
||||||
ka->sa.sa_restorer) {
|
|
||||||
sp = (unsigned long) ka->sa.sa_restorer;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (void __user *)((sp - frame_size) & -8ul);
|
return (void __user *)((sp - frame_size) & -8ul);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -235,13 +235,6 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)
|
||||||
sp = current->sas_ss_sp + current->sas_ss_size;
|
sp = current->sas_ss_sp + current->sas_ss_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is the legacy signal stack switching. */
|
|
||||||
else if (!user_mode(regs) &&
|
|
||||||
!(ka->sa.sa_flags & SA_RESTORER) &&
|
|
||||||
ka->sa.sa_restorer) {
|
|
||||||
sp = (unsigned long) ka->sa.sa_restorer;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (void __user *)((sp - frame_size) & -8ul);
|
return (void __user *)((sp - frame_size) & -8ul);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,15 +407,6 @@ void do_signal(struct pt_regs *regs)
|
||||||
struct k_sigaction ka;
|
struct k_sigaction ka;
|
||||||
sigset_t *oldset;
|
sigset_t *oldset;
|
||||||
|
|
||||||
/*
|
|
||||||
* We want the common case to go fast, which
|
|
||||||
* is why we may in certain cases get here from
|
|
||||||
* kernel mode. Just return without doing anything
|
|
||||||
* if so.
|
|
||||||
*/
|
|
||||||
if (!user_mode(regs))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (test_thread_flag(TIF_RESTORE_SIGMASK))
|
if (test_thread_flag(TIF_RESTORE_SIGMASK))
|
||||||
oldset = ¤t->saved_sigmask;
|
oldset = ¤t->saved_sigmask;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue