Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 340353
b: refs/heads/master
c: 135c37b
h: refs/heads/master
i:
  340351: 775b1e1
v: v3
  • Loading branch information
Al Viro committed Nov 29, 2012
1 parent 4ef1e75 commit 3930aa6
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 55 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3e41f9ba611cf8b87a20eecc54572b348b48bd91
refs/heads/master: 135c37b83c81b79a888108e3f7c5f64423d8a851
1 change: 1 addition & 0 deletions trunk/arch/blackfin/include/asm/unistd.h
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,7 @@
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_SYS_EXECVE
#define __ARCH_WANT_SYS_VFORK

/*
* "Conditional" syscalls
Expand Down
33 changes: 0 additions & 33 deletions trunk/arch/blackfin/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -57,36 +57,3 @@ ENTRY(_ret_from_fork)
RESTORE_CONTEXT
rti;
ENDPROC(_ret_from_fork)

ENTRY(_sys_vfork)
r0 = sp;
r0 += 24;
[--sp] = rets;
SP += -12;
pseudo_long_call _bfin_vfork, p2;
SP += 12;
rets = [sp++];
rts;
ENDPROC(_sys_vfork)

ENTRY(_sys_clone)
r0 = sp;
r0 += 24;
[--sp] = rets;
SP += -12;
pseudo_long_call _bfin_clone, p2;
SP += 12;
rets = [sp++];
rts;
ENDPROC(_sys_clone)

ENTRY(_sys_rt_sigreturn)
r0 = sp;
r0 += 24;
[--sp] = rets;
SP += -12;
pseudo_long_call _do_rt_sigreturn, p2;
SP += 12;
rets = [sp++];
rts;
ENDPROC(_sys_rt_sigreturn)
21 changes: 3 additions & 18 deletions trunk/arch/blackfin/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,28 +127,13 @@ void flush_thread(void)
{
}

asmlinkage int bfin_vfork(struct pt_regs *regs)
asmlinkage int bfin_clone(unsigned long clone_flags, unsigned long newsp)
{
return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, rdusp(), regs, 0, NULL,
NULL);
}

asmlinkage int bfin_clone(struct pt_regs *regs)
{
unsigned long clone_flags;
unsigned long newsp;

#ifdef __ARCH_SYNC_CORE_DCACHE
if (current->nr_cpus_allowed == num_possible_cpus())
set_cpus_allowed_ptr(current, cpumask_of(smp_processor_id()));
#endif

/* syscall2 puts clone_flags in r0 and usp in r1 */
clone_flags = regs->r0;
newsp = regs->r1;
if (!newsp)
newsp = rdusp();
else
if (newsp)
newsp -= 12;
return do_fork(clone_flags, newsp, regs, 0, NULL, NULL);
}
Expand All @@ -174,7 +159,7 @@ copy_thread(unsigned long clone_flags,
} else {
*childregs = *regs;
childregs->r0 = 0;
p->thread.usp = usp;
p->thread.usp = usp ? : rdusp();
v[0] = v[1] = 0;
}

Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/blackfin/kernel/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ rt_restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *p
return err;
}

asmlinkage int do_rt_sigreturn(unsigned long __unused)
asmlinkage int sys_rt_sigreturn(void)
{
struct pt_regs *regs = (struct pt_regs *)__unused;
struct pt_regs *regs = current_pt_regs();
unsigned long usp = rdusp();
struct rt_sigframe *frame = (struct rt_sigframe *)(usp);
sigset_t set;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/blackfin/mach-common/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -1431,7 +1431,7 @@ ENTRY(_sys_call_table)
.long _sys_ni_syscall /* old sys_ipc */
.long _sys_fsync
.long _sys_ni_syscall /* old sys_sigreturn */
.long _sys_clone /* 120 */
.long _bfin_clone /* 120 */
.long _sys_setdomainname
.long _sys_newuname
.long _sys_ni_syscall /* old sys_modify_ldt */
Expand Down

0 comments on commit 3930aa6

Please sign in to comment.