Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
c7e6d792
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c7e6d792
编写于
3月 10, 2015
作者:
V
Vineet Gupta
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ARC: entry.S: move some code around for cache locality in return path
Signed-off-by:
N
Vineet Gupta
<
vgupta@synopsys.com
>
上级
6d1a20b1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
52 addition
and
48 deletion
+52
-48
arch/arc/kernel/entry-compact.S
arch/arc/kernel/entry-compact.S
+2
-0
arch/arc/kernel/entry.S
arch/arc/kernel/entry.S
+50
-48
未找到文件。
arch/arc/kernel/entry-compact.S
浏览文件 @
c7e6d792
...
...
@@ -391,3 +391,5 @@ not_level1_interrupt:
EXCEPTION_EPILOGUE
debug_marker_syscall
:
rtie
END
(
ret_from_exception
)
arch/arc/kernel/entry.S
浏览文件 @
c7e6d792
...
...
@@ -24,6 +24,55 @@
*------------------------------------------------------------------
*/
;################### Special Sys Call Wrappers ##########################
ENTRY
(
sys_clone_wrapper
)
SAVE_CALLEE_SAVED_USER
bl
@
sys_clone
DISCARD_CALLEE_SAVED_USER
GET_CURR_THR_INFO_FLAGS
r10
btst
r10
,
TIF_SYSCALL_TRACE
bnz
tracesys_exit
b
ret_from_system_call
END
(
sys_clone_wrapper
)
ENTRY
(
ret_from_fork
)
; when the forked child comes here from the __switch_to function
; r0 has the last task pointer.
; put last task in scheduler queue
bl
@
schedule_tail
ld
r9
,
[
sp
,
PT_status32
]
brne
r9
,
0
,
1
f
jl.d
[
r14
]
; kernel thread entry point
mov
r0
,
r13
; (see PF_KTHREAD block in copy_thread)
1
:
; Return to user space
; 1. Any forked task (Reach here via BRne above)
; 2. First ever init task (Reach here via return from JL above)
; This is the historic "kernel_execve" use-case, to return to init
; user mode, in a round about way since that is always done from
; a kernel thread which is executed via JL above but always returns
; out whenever kernel_execve (now inline do_fork()) is involved
b
ret_from_exception
END
(
ret_from_fork
)
#ifdef CONFIG_ARC_DW2_UNWIND
; Workaround for bug 94179 (STAR ):
; Despite -fasynchronous-unwind-tables, linker is not making dwarf2 unwinder
; section (.debug_frame) as loadable. So we force it here.
; This also fixes STAR 9000487933 where the prev-workaround (objcopy --setflag)
; would not work after a clean build due to kernel build system dependencies.
.
section
.
debug_frame
,
"wa"
,
@
progbits
; Reset to .text as this file is included in entry-<isa>.S
.
section
.
text
,
"ax"
,
@
progbits
#endif
;################### Non TLB Exception Handling #############################
; ---------------------------------------------
...
...
@@ -338,53 +387,6 @@ resume_kernel_mode:
#endif
b
.
Lrestore_regs
END
(
ret_from_exception
)
ENTRY
(
ret_from_fork
)
; when the forked child comes here from the __switch_to function
; r0 has the last task pointer.
; put last task in scheduler queue
bl
@
schedule_tail
ld
r9
,
[
sp
,
PT_status32
]
brne
r9
,
0
,
1
f
jl.d
[
r14
]
; kernel thread entry point
mov
r0
,
r13
; (see PF_KTHREAD block in copy_thread)
1
:
; Return to user space
; 1. Any forked task (Reach here via BRne above)
; 2. First ever init task (Reach here via return from JL above)
; This is the historic "kernel_execve" use-case, to return to init
; user mode, in a round about way since that is always done from
; a kernel thread which is executed via JL above but always returns
; out whenever kernel_execve (now inline do_fork()) is involved
b
ret_from_exception
END
(
ret_from_fork
)
;################### Special Sys Call Wrappers ##########################
ENTRY
(
sys_clone_wrapper
)
SAVE_CALLEE_SAVED_USER
bl
@
sys_clone
DISCARD_CALLEE_SAVED_USER
GET_CURR_THR_INFO_FLAGS
r10
btst
r10
,
TIF_SYSCALL_TRACE
bnz
tracesys_exit
b
ret_from_system_call
END
(
sys_clone_wrapper
)
#ifdef CONFIG_ARC_DW2_UNWIND
; Workaround for bug 94179 (STAR ):
; Despite -fasynchronous-unwind-tables, linker is not making dwarf2 unwinder
; section (.debug_frame) as loadable. So we force it here.
; This also fixes STAR 9000487933 where the prev-workaround (objcopy --setflag)
; would not work after a clean build due to kernel build system dependencies.
.
section
.
debug_frame
,
"wa"
,
@
progbits
#####
DONT
ADD
CODE
HERE
-
.
Lrestore_regs
actually
follows
in
entry
-<
isa
>
.
S
; Reset to .text as this file is included in entry-<isa>.S
.
section
.
text
,
"ax"
,
@
progbits
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录