Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
135c37b8
Commit
135c37b8
authored
Nov 13, 2012
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bfin: switch to generic vfork, get rid of pointless wrappers
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
3e41f9ba
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
7 additions
and
54 deletions
+7
-54
arch/blackfin/include/asm/unistd.h
arch/blackfin/include/asm/unistd.h
+1
-0
arch/blackfin/kernel/entry.S
arch/blackfin/kernel/entry.S
+0
-33
arch/blackfin/kernel/process.c
arch/blackfin/kernel/process.c
+3
-18
arch/blackfin/kernel/signal.c
arch/blackfin/kernel/signal.c
+2
-2
arch/blackfin/mach-common/entry.S
arch/blackfin/mach-common/entry.S
+1
-1
No files found.
arch/blackfin/include/asm/unistd.h
View file @
135c37b8
...
@@ -447,6 +447,7 @@
...
@@ -447,6 +447,7 @@
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_SYS_EXECVE
#define __ARCH_WANT_SYS_EXECVE
#define __ARCH_WANT_SYS_VFORK
/*
/*
* "Conditional" syscalls
* "Conditional" syscalls
...
...
arch/blackfin/kernel/entry.S
View file @
135c37b8
...
@@ -57,36 +57,3 @@ ENTRY(_ret_from_fork)
...
@@ -57,36 +57,3 @@ ENTRY(_ret_from_fork)
RESTORE_CONTEXT
RESTORE_CONTEXT
rti
;
rti
;
ENDPROC
(
_ret_from_fork
)
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
)
arch/blackfin/kernel/process.c
View file @
135c37b8
...
@@ -127,28 +127,13 @@ void flush_thread(void)
...
@@ -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
#ifdef __ARCH_SYNC_CORE_DCACHE
if
(
current
->
nr_cpus_allowed
==
num_possible_cpus
())
if
(
current
->
nr_cpus_allowed
==
num_possible_cpus
())
set_cpus_allowed_ptr
(
current
,
cpumask_of
(
smp_processor_id
()));
set_cpus_allowed_ptr
(
current
,
cpumask_of
(
smp_processor_id
()));
#endif
#endif
if
(
newsp
)
/* syscall2 puts clone_flags in r0 and usp in r1 */
clone_flags
=
regs
->
r0
;
newsp
=
regs
->
r1
;
if
(
!
newsp
)
newsp
=
rdusp
();
else
newsp
-=
12
;
newsp
-=
12
;
return
do_fork
(
clone_flags
,
newsp
,
regs
,
0
,
NULL
,
NULL
);
return
do_fork
(
clone_flags
,
newsp
,
regs
,
0
,
NULL
,
NULL
);
}
}
...
@@ -174,7 +159,7 @@ copy_thread(unsigned long clone_flags,
...
@@ -174,7 +159,7 @@ copy_thread(unsigned long clone_flags,
}
else
{
}
else
{
*
childregs
=
*
regs
;
*
childregs
=
*
regs
;
childregs
->
r0
=
0
;
childregs
->
r0
=
0
;
p
->
thread
.
usp
=
usp
;
p
->
thread
.
usp
=
usp
?
:
rdusp
()
;
v
[
0
]
=
v
[
1
]
=
0
;
v
[
0
]
=
v
[
1
]
=
0
;
}
}
...
...
arch/blackfin/kernel/signal.c
View file @
135c37b8
...
@@ -82,9 +82,9 @@ rt_restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *p
...
@@ -82,9 +82,9 @@ rt_restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *p
return
err
;
return
err
;
}
}
asmlinkage
int
do_rt_sigreturn
(
unsigned
long
__unuse
d
)
asmlinkage
int
sys_rt_sigreturn
(
voi
d
)
{
{
struct
pt_regs
*
regs
=
(
struct
pt_regs
*
)
__unused
;
struct
pt_regs
*
regs
=
current_pt_regs
()
;
unsigned
long
usp
=
rdusp
();
unsigned
long
usp
=
rdusp
();
struct
rt_sigframe
*
frame
=
(
struct
rt_sigframe
*
)(
usp
);
struct
rt_sigframe
*
frame
=
(
struct
rt_sigframe
*
)(
usp
);
sigset_t
set
;
sigset_t
set
;
...
...
arch/blackfin/mach-common/entry.S
View file @
135c37b8
...
@@ -1431,7 +1431,7 @@ ENTRY(_sys_call_table)
...
@@ -1431,7 +1431,7 @@ ENTRY(_sys_call_table)
.
long
_sys_ni_syscall
/*
old
sys_ipc
*/
.
long
_sys_ni_syscall
/*
old
sys_ipc
*/
.
long
_sys_fsync
.
long
_sys_fsync
.
long
_sys_ni_syscall
/*
old
sys_sigreturn
*/
.
long
_sys_ni_syscall
/*
old
sys_sigreturn
*/
.
long
_
sys
_clone
/*
120
*/
.
long
_
bfin
_clone
/*
120
*/
.
long
_sys_setdomainname
.
long
_sys_setdomainname
.
long
_sys_newuname
.
long
_sys_newuname
.
long
_sys_ni_syscall
/*
old
sys_modify_ldt
*/
.
long
_sys_ni_syscall
/*
old
sys_modify_ldt
*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment