Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
785d3cd2
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
785d3cd2
编写于
12月 03, 2007
作者:
N
Nicolas Pitre
提交者:
Russell King
1月 26, 2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ARM kprobes: prevent some functions involved with kprobes from being probed
Signed-off-by:
N
Nicolas Pitre
<
nico@marvell.com
>
上级
d30a0c8b
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
20 addition
and
13 deletion
+20
-13
arch/arm/kernel/entry-armv.S
arch/arm/kernel/entry-armv.S
+7
-1
arch/arm/kernel/kprobes.c
arch/arm/kernel/kprobes.c
+1
-1
arch/arm/kernel/traps.c
arch/arm/kernel/traps.c
+0
-9
arch/arm/kernel/vmlinux.lds.S
arch/arm/kernel/vmlinux.lds.S
+1
-0
arch/arm/mm/fault.c
arch/arm/mm/fault.c
+2
-2
include/asm-arm/traps.h
include/asm-arm/traps.h
+9
-0
未找到文件。
arch/arm/kernel/entry-armv.S
浏览文件 @
785d3cd2
...
...
@@ -58,6 +58,12 @@
.
endm
#ifdef CONFIG_KPROBES
.
section
.
kprobes
.
text
,
"ax"
,%
progbits
#else
.
text
#endif
/*
*
Invalid
mode
handlers
*/
...
...
@@ -562,7 +568,7 @@ do_fpe:
.
data
ENTRY
(
fp_enter
)
.
word
no_fp
.
text
.
previous
no_fp
:
mov
pc
,
lr
...
...
arch/arm/kernel/kprobes.c
浏览文件 @
785d3cd2
...
...
@@ -55,7 +55,7 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
unsigned
long
addr
=
(
unsigned
long
)
p
->
addr
;
int
is
;
if
(
addr
&
0x3
)
if
(
addr
&
0x3
||
in_exception_text
(
addr
)
)
return
-
EINVAL
;
insn
=
*
p
->
addr
;
...
...
arch/arm/kernel/traps.c
浏览文件 @
785d3cd2
...
...
@@ -46,15 +46,6 @@ __setup("user_debug=", user_debug_setup);
static
void
dump_mem
(
const
char
*
str
,
unsigned
long
bottom
,
unsigned
long
top
);
static
inline
int
in_exception_text
(
unsigned
long
ptr
)
{
extern
char
__exception_text_start
[];
extern
char
__exception_text_end
[];
return
ptr
>=
(
unsigned
long
)
&
__exception_text_start
&&
ptr
<
(
unsigned
long
)
&
__exception_text_end
;
}
void
dump_backtrace_entry
(
unsigned
long
where
,
unsigned
long
from
,
unsigned
long
frame
)
{
#ifdef CONFIG_KALLSYMS
...
...
arch/arm/kernel/vmlinux.lds.S
浏览文件 @
785d3cd2
...
...
@@ -94,6 +94,7 @@ SECTIONS
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
KPROBES_TEXT
#ifdef CONFIG_MMU
*(.
fixup
)
#endif
...
...
arch/arm/mm/fault.c
浏览文件 @
785d3cd2
...
...
@@ -239,7 +239,7 @@ __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
return
fault
;
}
static
int
static
int
__kprobes
do_page_fault
(
unsigned
long
addr
,
unsigned
int
fsr
,
struct
pt_regs
*
regs
)
{
struct
task_struct
*
tsk
;
...
...
@@ -338,7 +338,7 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
* interrupt or a critical region, and should only copy the information
* from the master page table, nothing more.
*/
static
int
static
int
__kprobes
do_translation_fault
(
unsigned
long
addr
,
unsigned
int
fsr
,
struct
pt_regs
*
regs
)
{
...
...
include/asm-arm/traps.h
浏览文件 @
785d3cd2
...
...
@@ -15,4 +15,13 @@ struct undef_hook {
void
register_undef_hook
(
struct
undef_hook
*
hook
);
void
unregister_undef_hook
(
struct
undef_hook
*
hook
);
static
inline
int
in_exception_text
(
unsigned
long
ptr
)
{
extern
char
__exception_text_start
[];
extern
char
__exception_text_end
[];
return
ptr
>=
(
unsigned
long
)
&
__exception_text_start
&&
ptr
<
(
unsigned
long
)
&
__exception_text_end
;
}
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录