arch/tile: eliminate pt_regs trampolines for syscalls
Using the new current_pt_regs() model, we can remove some trampolines from assembly code and call directly to the C syscall implementations. rt_sigreturn() and clone() still need some assembly wrapping, but no longer are passed a pt_regs pointer. sigaltstack() and the tilepro-specific cmpxchg_badaddr() syscalls are now just straight C. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
This commit is contained in:
@@ -70,9 +70,10 @@ static noinline void force_sig_info_fault(const char *type, int si_signo,
|
||||
* Synthesize the fault a PL0 process would get by doing a word-load of
|
||||
* an unaligned address or a high kernel address.
|
||||
*/
|
||||
SYSCALL_DEFINE2(cmpxchg_badaddr, unsigned long, address,
|
||||
struct pt_regs *, regs)
|
||||
SYSCALL_DEFINE1(cmpxchg_badaddr, unsigned long, address)
|
||||
{
|
||||
struct pt_regs *regs = current_pt_regs();
|
||||
|
||||
if (address >= PAGE_OFFSET)
|
||||
force_sig_info_fault("atomic segfault", SIGSEGV, SEGV_MAPERR,
|
||||
address, INT_DTLB_MISS, current, regs);
|
||||
|
Reference in New Issue
Block a user