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
bd71c453
Commit
bd71c453
authored
Jan 15, 2020
by
Vineet Gupta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ARC: wireup clone3 syscall
Signed-off-by:
Vineet Gupta
<
vgupta@synopsys.com
>
parent
7980dff3
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
19 additions
and
4 deletions
+19
-4
arch/arc/Kconfig
arch/arc/Kconfig
+1
-0
arch/arc/include/asm/syscalls.h
arch/arc/include/asm/syscalls.h
+1
-0
arch/arc/include/uapi/asm/unistd.h
arch/arc/include/uapi/asm/unistd.h
+1
-0
arch/arc/kernel/entry.S
arch/arc/kernel/entry.S
+12
-0
arch/arc/kernel/process.c
arch/arc/kernel/process.c
+3
-4
arch/arc/kernel/sys.c
arch/arc/kernel/sys.c
+1
-0
No files found.
arch/arc/Kconfig
View file @
bd71c453
...
...
@@ -28,6 +28,7 @@ config ARC
select GENERIC_SMP_IDLE_THREAD
select HAVE_ARCH_KGDB
select HAVE_ARCH_TRACEHOOK
select HAVE_COPY_THREAD_TLS
select HAVE_DEBUG_STACKOVERFLOW
select HAVE_DEBUG_KMEMLEAK
select HAVE_FUTEX_CMPXCHG if FUTEX
...
...
arch/arc/include/asm/syscalls.h
View file @
bd71c453
...
...
@@ -11,6 +11,7 @@
#include <linux/types.h>
int
sys_clone_wrapper
(
int
,
int
,
int
,
int
,
int
);
int
sys_clone3_wrapper
(
void
*
,
size_t
);
int
sys_cacheflush
(
uint32_t
,
uint32_t
uint32_t
);
int
sys_arc_settls
(
void
*
);
int
sys_arc_gettls
(
void
);
...
...
arch/arc/include/uapi/asm/unistd.h
View file @
bd71c453
...
...
@@ -21,6 +21,7 @@
#define __ARCH_WANT_SET_GET_RLIMIT
#define __ARCH_WANT_SYS_EXECVE
#define __ARCH_WANT_SYS_CLONE
#define __ARCH_WANT_SYS_CLONE3
#define __ARCH_WANT_SYS_VFORK
#define __ARCH_WANT_SYS_FORK
#define __ARCH_WANT_TIME32_SYSCALLS
...
...
arch/arc/kernel/entry.S
View file @
bd71c453
...
...
@@ -35,6 +35,18 @@ ENTRY(sys_clone_wrapper)
b
.
Lret_from_system_call
END
(
sys_clone_wrapper
)
ENTRY
(
sys_clone3_wrapper
)
SAVE_CALLEE_SAVED_USER
bl
@
sys_clone3
DISCARD_CALLEE_SAVED_USER
GET_CURR_THR_INFO_FLAGS
r10
btst
r10
,
TIF_SYSCALL_TRACE
bnz
tracesys_exit
b
.
Lret_from_system_call
END
(
sys_clone3_wrapper
)
ENTRY
(
ret_from_fork
)
; when the forked child comes here from the __switch_to function
; r0 has the last task pointer.
...
...
arch/arc/kernel/process.c
View file @
bd71c453
...
...
@@ -171,9 +171,8 @@ asmlinkage void ret_from_fork(void);
* | user_r25 |
* ------------------ <===== END of PAGE
*/
int
copy_thread
(
unsigned
long
clone_flags
,
unsigned
long
usp
,
unsigned
long
kthread_arg
,
struct
task_struct
*
p
)
int
copy_thread_tls
(
unsigned
long
clone_flags
,
unsigned
long
usp
,
unsigned
long
kthread_arg
,
struct
task_struct
*
p
,
unsigned
long
tls
)
{
struct
pt_regs
*
c_regs
;
/* child's pt_regs */
unsigned
long
*
childksp
;
/* to unwind out of __switch_to() */
...
...
@@ -231,7 +230,7 @@ int copy_thread(unsigned long clone_flags,
* set task's userland tls data ptr from 4th arg
* clone C-lib call is difft from clone sys-call
*/
task_thread_info
(
p
)
->
thr_ptr
=
regs
->
r3
;
task_thread_info
(
p
)
->
thr_ptr
=
tls
;
}
else
{
/* Normal fork case: set parent's TLS ptr in child */
task_thread_info
(
p
)
->
thr_ptr
=
...
...
arch/arc/kernel/sys.c
View file @
bd71c453
...
...
@@ -7,6 +7,7 @@
#include <asm/syscalls.h>
#define sys_clone sys_clone_wrapper
#define sys_clone3 sys_clone3_wrapper
#undef __SYSCALL
#define __SYSCALL(nr, call) [nr] = (call),
...
...
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