Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
037c10a6
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
037c10a6
编写于
9月 08, 2008
作者:
P
Paul Mundt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sh: kprobes: Hook up kprobe_fault_handler() in the page fault path.
Signed-off-by:
N
Paul Mundt
<
lethal@linux-sh.org
>
上级
fc63562a
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
30 addition
and
4 deletion
+30
-4
arch/sh/include/asm/kprobes.h
arch/sh/include/asm/kprobes.h
+1
-2
arch/sh/kernel/kprobes.c
arch/sh/kernel/kprobes.c
+1
-1
arch/sh/mm/fault_32.c
arch/sh/mm/fault_32.c
+28
-1
未找到文件。
arch/sh/include/asm/kprobes.h
浏览文件 @
037c10a6
...
...
@@ -6,8 +6,6 @@
#include <linux/types.h>
#include <linux/ptrace.h>
struct
pt_regs
;
typedef
u16
kprobe_opcode_t
;
#define BREAKPOINT_INSTRUCTION 0xc3ff
...
...
@@ -48,6 +46,7 @@ struct kprobe_ctlblk {
struct
prev_kprobe
prev_kprobe
;
};
extern
int
kprobe_fault_handler
(
struct
pt_regs
*
regs
,
int
trapnr
);
extern
int
kprobe_exceptions_notify
(
struct
notifier_block
*
self
,
unsigned
long
val
,
void
*
data
);
extern
int
kprobe_handle_illslot
(
unsigned
long
pc
);
...
...
arch/sh/kernel/kprobes.c
浏览文件 @
037c10a6
...
...
@@ -393,7 +393,7 @@ static inline int post_kprobe_handler(struct pt_regs *regs)
return
1
;
}
static
inline
int
kprobe_fault_handler
(
struct
pt_regs
*
regs
,
int
trapnr
)
int
__kprobes
kprobe_fault_handler
(
struct
pt_regs
*
regs
,
int
trapnr
)
{
struct
kprobe
*
cur
=
kprobe_running
();
struct
kprobe_ctlblk
*
kcb
=
get_kprobe_ctlblk
();
...
...
arch/sh/mm/fault_32.c
浏览文件 @
037c10a6
...
...
@@ -2,7 +2,7 @@
* Page fault handler for SH with an MMU.
*
* Copyright (C) 1999 Niibe Yutaka
* Copyright (C) 2003 - 200
7
Paul Mundt
* Copyright (C) 2003 - 200
8
Paul Mundt
*
* Based on linux/arch/i386/mm/fault.c:
* Copyright (C) 1995 Linus Torvalds
...
...
@@ -21,6 +21,27 @@
#include <asm/tlbflush.h>
#include <asm/kgdb.h>
#ifdef CONFIG_KPROBES
static
inline
int
notify_page_fault
(
struct
pt_regs
*
regs
,
int
trap
)
{
int
ret
=
0
;
if
(
!
user_mode
(
regs
))
{
preempt_disable
();
if
(
kprobe_running
()
&&
kprobe_fault_handler
(
regs
,
trap
))
ret
=
1
;
preempt_enable
();
}
return
ret
;
}
#else
static
inline
int
notify_page_fault
(
struct
pt_regs
*
regs
,
int
trap
)
{
return
0
;
}
#endif
/*
* This routine handles page faults. It determines the address,
* and the problem, and then passes it off to one of the appropriate
...
...
@@ -37,6 +58,9 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
int
fault
;
siginfo_t
info
;
if
(
notify_page_fault
(
regs
,
writeaccess
))
return
;
#ifdef CONFIG_SH_KGDB
if
(
kgdb_nofault
&&
kgdb_bus_err_hook
)
kgdb_bus_err_hook
();
...
...
@@ -269,6 +293,9 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs,
pte_t
*
pte
;
pte_t
entry
;
if
(
notify_page_fault
(
regs
,
writeaccess
))
return
0
;
#ifdef CONFIG_SH_KGDB
if
(
kgdb_nofault
&&
kgdb_bus_err_hook
)
kgdb_bus_err_hook
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录