Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
f036b943
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 2 年 前同步成功
通知
173
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看板
提交
f036b943
编写于
12月 25, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
s390: switch to generic compat rt_sigaction
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
d7b5427c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
2 addition
and
49 deletion
+2
-49
arch/s390/Kconfig
arch/s390/Kconfig
+1
-0
arch/s390/kernel/compat_linux.h
arch/s390/kernel/compat_linux.h
+0
-8
arch/s390/kernel/compat_signal.c
arch/s390/kernel/compat_signal.c
+0
-40
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/compat_wrapper.S
+1
-1
未找到文件。
arch/s390/Kconfig
浏览文件 @
f036b943
...
@@ -141,6 +141,7 @@ config S390
...
@@ -141,6 +141,7 @@ config S390
select MODULES_USE_ELF_RELA
select MODULES_USE_ELF_RELA
select CLONE_BACKWARDS2
select CLONE_BACKWARDS2
select GENERIC_SIGALTSTACK
select GENERIC_SIGALTSTACK
select GENERIC_COMPAT_RT_SIGACTION
select GENERIC_COMPAT_RT_SIGQUEUEINFO
select GENERIC_COMPAT_RT_SIGQUEUEINFO
select GENERIC_COMPAT_RT_SIGPROCMASK
select GENERIC_COMPAT_RT_SIGPROCMASK
select GENERIC_COMPAT_RT_SIGPENDING
select GENERIC_COMPAT_RT_SIGPENDING
...
...
arch/s390/kernel/compat_linux.h
浏览文件 @
f036b943
...
@@ -68,12 +68,6 @@ struct sigcontext32
...
@@ -68,12 +68,6 @@ struct sigcontext32
};
};
/* asm/signal.h */
/* asm/signal.h */
struct
sigaction32
{
__u32
sa_handler
;
/* pointer */
__u32
sa_flags
;
__u32
sa_restorer
;
/* pointer */
compat_sigset_t
sa_mask
;
/* mask last for extensibility */
};
/* asm/ucontext.h */
/* asm/ucontext.h */
struct
ucontext32
{
struct
ucontext32
{
...
@@ -139,6 +133,4 @@ long sys32_fadvise64(int fd, loff_t offset, size_t len, int advise);
...
@@ -139,6 +133,4 @@ long sys32_fadvise64(int fd, loff_t offset, size_t len, int advise);
long
sys32_fadvise64_64
(
struct
fadvise64_64_args
__user
*
args
);
long
sys32_fadvise64_64
(
struct
fadvise64_64_args
__user
*
args
);
long
sys32_sigaction
(
int
sig
,
const
struct
old_sigaction32
__user
*
act
,
long
sys32_sigaction
(
int
sig
,
const
struct
old_sigaction32
__user
*
act
,
struct
old_sigaction32
__user
*
oact
);
struct
old_sigaction32
__user
*
oact
);
long
sys32_rt_sigaction
(
int
sig
,
const
struct
sigaction32
__user
*
act
,
struct
sigaction32
__user
*
oact
,
size_t
sigsetsize
);
#endif
/* _ASM_S390X_S390_H */
#endif
/* _ASM_S390X_S390_H */
arch/s390/kernel/compat_signal.c
浏览文件 @
f036b943
...
@@ -194,46 +194,6 @@ sys32_sigaction(int sig, const struct old_sigaction32 __user *act,
...
@@ -194,46 +194,6 @@ sys32_sigaction(int sig, const struct old_sigaction32 __user *act,
return
ret
;
return
ret
;
}
}
asmlinkage
long
sys32_rt_sigaction
(
int
sig
,
const
struct
sigaction32
__user
*
act
,
struct
sigaction32
__user
*
oact
,
size_t
sigsetsize
)
{
struct
k_sigaction
new_ka
,
old_ka
;
unsigned
long
sa_handler
;
int
ret
;
compat_sigset_t
set32
;
/* XXX: Don't preclude handling different sized sigset_t's. */
if
(
sigsetsize
!=
sizeof
(
compat_sigset_t
))
return
-
EINVAL
;
if
(
act
)
{
ret
=
get_user
(
sa_handler
,
&
act
->
sa_handler
);
ret
|=
__copy_from_user
(
&
set32
,
&
act
->
sa_mask
,
sizeof
(
compat_sigset_t
));
new_ka
.
sa
.
sa_mask
.
sig
[
0
]
=
set32
.
sig
[
0
]
|
(((
long
)
set32
.
sig
[
1
])
<<
32
);
ret
|=
__get_user
(
new_ka
.
sa
.
sa_flags
,
&
act
->
sa_flags
);
if
(
ret
)
return
-
EFAULT
;
new_ka
.
sa
.
sa_handler
=
(
__sighandler_t
)
sa_handler
;
}
ret
=
do_sigaction
(
sig
,
act
?
&
new_ka
:
NULL
,
oact
?
&
old_ka
:
NULL
);
if
(
!
ret
&&
oact
)
{
set32
.
sig
[
1
]
=
(
old_ka
.
sa
.
sa_mask
.
sig
[
0
]
>>
32
);
set32
.
sig
[
0
]
=
old_ka
.
sa
.
sa_mask
.
sig
[
0
];
ret
=
put_user
((
unsigned
long
)
old_ka
.
sa
.
sa_handler
,
&
oact
->
sa_handler
);
ret
|=
__copy_to_user
(
&
oact
->
sa_mask
,
&
set32
,
sizeof
(
compat_sigset_t
));
ret
|=
__put_user
(
old_ka
.
sa
.
sa_flags
,
&
oact
->
sa_flags
);
}
return
ret
;
}
static
int
save_sigregs32
(
struct
pt_regs
*
regs
,
_sigregs32
__user
*
sregs
)
static
int
save_sigregs32
(
struct
pt_regs
*
regs
,
_sigregs32
__user
*
sregs
)
{
{
_s390_regs_common32
regs32
;
_s390_regs_common32
regs32
;
...
...
arch/s390/kernel/compat_wrapper.S
浏览文件 @
f036b943
...
@@ -691,7 +691,7 @@ ENTRY(sys32_rt_sigaction_wrapper)
...
@@ -691,7 +691,7 @@ ENTRY(sys32_rt_sigaction_wrapper)
llgtr
%
r3
,%
r3
#
const
struct
sigaction_emu31
*
llgtr
%
r3
,%
r3
#
const
struct
sigaction_emu31
*
llgtr
%
r4
,%
r4
#
const
struct
sigaction_emu31
*
llgtr
%
r4
,%
r4
#
const
struct
sigaction_emu31
*
llgfr
%
r5
,%
r5
#
size_t
llgfr
%
r5
,%
r5
#
size_t
jg
sys32
_rt_sigaction
#
branch
to
system
call
jg
compat_sys
_rt_sigaction
#
branch
to
system
call
ENTRY
(
sys32_rt_sigprocmask_wrapper
)
ENTRY
(
sys32_rt_sigprocmask_wrapper
)
lgfr
%
r2
,%
r2
#
int
lgfr
%
r2
,%
r2
#
int
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录