Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
aa584802
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
aa584802
编写于
12月 25, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
mips: switch to generic compat rt_sigaction()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
0450d22f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
5 addition
and
54 deletion
+5
-54
arch/mips/Kconfig
arch/mips/Kconfig
+1
-0
arch/mips/kernel/scall64-n32.S
arch/mips/kernel/scall64-n32.S
+1
-1
arch/mips/kernel/scall64-o32.S
arch/mips/kernel/scall64-o32.S
+1
-1
arch/mips/kernel/signal32.c
arch/mips/kernel/signal32.c
+2
-52
未找到文件。
arch/mips/Kconfig
浏览文件 @
aa584802
...
...
@@ -42,6 +42,7 @@ config MIPS
select MODULES_USE_ELF_REL if MODULES
select MODULES_USE_ELF_RELA if MODULES && 64BIT
select GENERIC_SIGALTSTACK
select GENERIC_COMPAT_RT_SIGACTION
select GENERIC_COMPAT_RT_SIGQUEUEINFO
select GENERIC_COMPAT_RT_SIGPROCMASK
select GENERIC_COMPAT_RT_SIGPENDING
...
...
arch/mips/kernel/scall64-n32.S
浏览文件 @
aa584802
...
...
@@ -117,7 +117,7 @@ EXPORT(sysn32_call_table)
PTR
sys_mprotect
/*
6010
*/
PTR
sys_munmap
PTR
sys_brk
PTR
sys_32
_rt_sigaction
PTR
compat_sys
_rt_sigaction
PTR
compat_sys_rt_sigprocmask
PTR
compat_sys_ioctl
/*
6015
*/
PTR
sys_pread64
...
...
arch/mips/kernel/scall64-o32.S
浏览文件 @
aa584802
...
...
@@ -386,7 +386,7 @@ sys_call_table:
PTR
sys_getresgid
PTR
sys_prctl
PTR
sys32_rt_sigreturn
PTR
sys_32
_rt_sigaction
PTR
compat_sys
_rt_sigaction
PTR
compat_sys_rt_sigprocmask
/*
4195
*/
PTR
compat_sys_rt_sigpending
PTR
compat_sys_rt_sigtimedwait
...
...
arch/mips/kernel/signal32.c
浏览文件 @
aa584802
...
...
@@ -55,12 +55,6 @@ extern asmlinkage int fpu_emulator_restore_context32(struct sigcontext32 __user
typedef
unsigned
int
__sighandler32_t
;
typedef
void
(
*
vfptr_t
)(
void
);
struct
sigaction32
{
unsigned
int
sa_flags
;
__sighandler32_t
sa_handler
;
compat_sigset_t
sa_mask
;
};
struct
ucontext32
{
u32
uc_flags
;
s32
uc_link
;
...
...
@@ -278,8 +272,8 @@ asmlinkage int sys32_sigsuspend(compat_sigset_t __user *uset)
return
compat_sys_rt_sigsuspend
(
uset
,
sizeof
(
compat_sigset_t
));
}
SYSCALL_DEFINE3
(
32
_sigaction
,
long
,
sig
,
const
struct
sigaction32
__user
*
,
act
,
struct
sigaction32
__user
*
,
oact
)
SYSCALL_DEFINE3
(
32
_sigaction
,
long
,
sig
,
const
struct
compat_sigaction
__user
*
,
act
,
struct
compat_sigaction
__user
*
,
oact
)
{
struct
k_sigaction
new_ka
,
old_ka
;
int
ret
;
...
...
@@ -564,50 +558,6 @@ struct mips_abi mips_abi_32 = {
.
restart
=
__NR_O32_restart_syscall
};
SYSCALL_DEFINE4
(
32
_rt_sigaction
,
int
,
sig
,
const
struct
sigaction32
__user
*
,
act
,
struct
sigaction32
__user
*
,
oact
,
unsigned
int
,
sigsetsize
)
{
struct
k_sigaction
new_sa
,
old_sa
;
int
ret
=
-
EINVAL
;
/* XXX: Don't preclude handling different sized sigset_t's. */
if
(
sigsetsize
!=
sizeof
(
sigset_t
))
goto
out
;
if
(
act
)
{
s32
handler
;
int
err
=
0
;
if
(
!
access_ok
(
VERIFY_READ
,
act
,
sizeof
(
*
act
)))
return
-
EFAULT
;
err
|=
__get_user
(
handler
,
&
act
->
sa_handler
);
new_sa
.
sa
.
sa_handler
=
(
void
__user
*
)(
s64
)
handler
;
err
|=
__get_user
(
new_sa
.
sa
.
sa_flags
,
&
act
->
sa_flags
);
err
|=
get_sigset
(
&
new_sa
.
sa
.
sa_mask
,
&
act
->
sa_mask
);
if
(
err
)
return
-
EFAULT
;
}
ret
=
do_sigaction
(
sig
,
act
?
&
new_sa
:
NULL
,
oact
?
&
old_sa
:
NULL
);
if
(
!
ret
&&
oact
)
{
int
err
=
0
;
if
(
!
access_ok
(
VERIFY_WRITE
,
oact
,
sizeof
(
*
oact
)))
return
-
EFAULT
;
err
|=
__put_user
((
u32
)(
u64
)
old_sa
.
sa
.
sa_handler
,
&
oact
->
sa_handler
);
err
|=
__put_user
(
old_sa
.
sa
.
sa_flags
,
&
oact
->
sa_flags
);
err
|=
put_sigset
(
&
old_sa
.
sa
.
sa_mask
,
&
oact
->
sa_mask
);
if
(
err
)
return
-
EFAULT
;
}
out:
return
ret
;
}
static
int
signal32_init
(
void
)
{
if
(
cpu_has_fpu
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录