Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
a402922b
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看板
提交
a402922b
编写于
12月 25, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tile: switch to generic compat rt_sigaction()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
7b5d3c1d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
1 addition
and
53 deletion
+1
-53
arch/tile/Kconfig
arch/tile/Kconfig
+1
-0
arch/tile/include/asm/compat.h
arch/tile/include/asm/compat.h
+0
-4
arch/tile/kernel/compat_signal.c
arch/tile/kernel/compat_signal.c
+0
-49
未找到文件。
arch/tile/Kconfig
浏览文件 @
a402922b
...
...
@@ -22,6 +22,7 @@ config TILE
select GENERIC_CLOCKEVENTS
select MODULES_USE_ELF_RELA
select GENERIC_SIGALTSTACK
select GENERIC_COMPAT_RT_SIGACTION
select GENERIC_COMPAT_RT_SIGQUEUEINFO
select GENERIC_COMPAT_RT_SIGPROCMASK
select GENERIC_COMPAT_RT_SIGPENDING
...
...
arch/tile/include/asm/compat.h
浏览文件 @
a402922b
...
...
@@ -272,12 +272,8 @@ extern int compat_setup_rt_frame(int sig, struct k_sigaction *ka,
struct
pt_regs
*
regs
);
/* Compat syscalls. */
struct
compat_sigaction
;
struct
compat_siginfo
;
struct
compat_sigaltstack
;
long
compat_sys_rt_sigaction
(
int
sig
,
struct
compat_sigaction
__user
*
act
,
struct
compat_sigaction
__user
*
oact
,
size_t
sigsetsize
);
long
compat_sys_rt_sigreturn
(
void
);
long
compat_sys_truncate64
(
char
__user
*
filename
,
u32
dummy
,
u32
low
,
u32
high
);
long
compat_sys_ftruncate64
(
unsigned
int
fd
,
u32
dummy
,
u32
low
,
u32
high
);
...
...
arch/tile/kernel/compat_signal.c
浏览文件 @
a402922b
...
...
@@ -34,13 +34,6 @@
#include <asm/syscalls.h>
#include <arch/interrupts.h>
struct
compat_sigaction
{
compat_uptr_t
sa_handler
;
compat_ulong_t
sa_flags
;
compat_uptr_t
sa_restorer
;
sigset_t
sa_mask
__packed
;
};
struct
compat_ucontext
{
compat_ulong_t
uc_flags
;
compat_uptr_t
uc_link
;
...
...
@@ -55,48 +48,6 @@ struct compat_rt_sigframe {
struct
compat_ucontext
uc
;
};
long
compat_sys_rt_sigaction
(
int
sig
,
struct
compat_sigaction
__user
*
act
,
struct
compat_sigaction
__user
*
oact
,
size_t
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
)
{
compat_uptr_t
handler
,
restorer
;
if
(
!
access_ok
(
VERIFY_READ
,
act
,
sizeof
(
*
act
))
||
__get_user
(
handler
,
&
act
->
sa_handler
)
||
__get_user
(
new_sa
.
sa
.
sa_flags
,
&
act
->
sa_flags
)
||
__get_user
(
restorer
,
&
act
->
sa_restorer
)
||
__copy_from_user
(
&
new_sa
.
sa
.
sa_mask
,
&
act
->
sa_mask
,
sizeof
(
sigset_t
)))
return
-
EFAULT
;
new_sa
.
sa
.
sa_handler
=
compat_ptr
(
handler
);
new_sa
.
sa
.
sa_restorer
=
compat_ptr
(
restorer
);
}
ret
=
do_sigaction
(
sig
,
act
?
&
new_sa
:
NULL
,
oact
?
&
old_sa
:
NULL
);
if
(
!
ret
&&
oact
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
oact
,
sizeof
(
*
oact
))
||
__put_user
(
ptr_to_compat
(
old_sa
.
sa
.
sa_handler
),
&
oact
->
sa_handler
)
||
__put_user
(
ptr_to_compat
(
old_sa
.
sa
.
sa_restorer
),
&
oact
->
sa_restorer
)
||
__put_user
(
old_sa
.
sa
.
sa_flags
,
&
oact
->
sa_flags
)
||
__copy_to_user
(
&
oact
->
sa_mask
,
&
old_sa
.
sa
.
sa_mask
,
sizeof
(
sigset_t
)))
return
-
EFAULT
;
}
out:
return
ret
;
}
int
copy_siginfo_to_user32
(
struct
compat_siginfo
__user
*
to
,
siginfo_t
*
from
)
{
int
err
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录