Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
7d197ed4
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看板
提交
7d197ed4
编写于
2月 24, 2013
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switch signalfd{,4}() to COMPAT_SYSCALL_DEFINE
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
2cf09666
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
33 addition
and
45 deletion
+33
-45
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/compat_wrapper.S
+0
-13
arch/s390/kernel/syscalls.S
arch/s390/kernel/syscalls.S
+2
-2
fs/compat.c
fs/compat.c
+0
-30
fs/signalfd.c
fs/signalfd.c
+31
-0
未找到文件。
arch/s390/kernel/compat_wrapper.S
浏览文件 @
7d197ed4
...
...
@@ -1299,12 +1299,6 @@ ENTRY(compat_sys_utimensat_wrapper)
lgfr
%
r5
,%
r5
#
int
jg
compat_sys_utimensat
ENTRY
(
compat_sys_signalfd_wrapper
)
lgfr
%
r2
,%
r2
#
int
llgtr
%
r3
,%
r3
#
compat_sigset_t
*
llgfr
%
r4
,%
r4
#
compat_size_t
jg
compat_sys_signalfd
ENTRY
(
sys_eventfd_wrapper
)
llgfr
%
r2
,%
r2
#
unsigned
int
jg
sys_eventfd
...
...
@@ -1323,13 +1317,6 @@ ENTRY(sys_timerfd_create_wrapper)
lgfr
%
r3
,%
r3
#
int
jg
sys_timerfd_create
ENTRY
(
compat_sys_signalfd4_wrapper
)
lgfr
%
r2
,%
r2
#
int
llgtr
%
r3
,%
r3
#
compat_sigset_t
*
llgfr
%
r4
,%
r4
#
compat_size_t
lgfr
%
r5
,%
r5
#
int
jg
compat_sys_signalfd4
ENTRY
(
sys_eventfd2_wrapper
)
llgfr
%
r2
,%
r2
#
unsigned
int
lgfr
%
r3
,%
r3
#
int
...
...
arch/s390/kernel/syscalls.S
浏览文件 @
7d197ed4
...
...
@@ -324,13 +324,13 @@ SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper)
SYSCALL
(
sys_utimes
,
sys_utimes
,
compat_sys_utimes_wrapper
)
SYSCALL
(
sys_s390_fallocate
,
sys_fallocate
,
sys_fallocate_wrapper
)
SYSCALL
(
sys_utimensat
,
sys_utimensat
,
compat_sys_utimensat_wrapper
)
/
*
315
*/
SYSCALL
(
sys_signalfd
,
sys_signalfd
,
compat_sys_signalfd
_wrapper
)
SYSCALL
(
sys_signalfd
,
sys_signalfd
,
compat_sys_signalfd
)
NI_SYSCALL
/
*
317
old
sys_timer_fd
*/
SYSCALL
(
sys_eventfd
,
sys_eventfd
,
sys_eventfd_wrapper
)
SYSCALL
(
sys_timerfd_create
,
sys_timerfd_create
,
sys_timerfd_create_wrapper
)
SYSCALL
(
sys_timerfd_settime
,
sys_timerfd_settime
,
compat_sys_timerfd_settime
)
/
*
320
*/
SYSCALL
(
sys_timerfd_gettime
,
sys_timerfd_gettime
,
compat_sys_timerfd_gettime
)
SYSCALL
(
sys_signalfd4
,
sys_signalfd4
,
compat_sys_signalfd4
_wrapper
)
SYSCALL
(
sys_signalfd4
,
sys_signalfd4
,
compat_sys_signalfd4
)
SYSCALL
(
sys_eventfd2
,
sys_eventfd2
,
sys_eventfd2_wrapper
)
SYSCALL
(
sys_inotify_init1
,
sys_inotify_init1
,
sys_inotify_init1_wrapper
)
SYSCALL
(
sys_pipe2
,
sys_pipe2
,
sys_pipe2_wrapper
)
/
*
325
*/
...
...
fs/compat.c
浏览文件 @
7d197ed4
...
...
@@ -1707,36 +1707,6 @@ asmlinkage long compat_sys_epoll_pwait(int epfd,
#endif
/* CONFIG_EPOLL */
#ifdef CONFIG_SIGNALFD
asmlinkage
long
compat_sys_signalfd4
(
int
ufd
,
const
compat_sigset_t
__user
*
sigmask
,
compat_size_t
sigsetsize
,
int
flags
)
{
compat_sigset_t
ss32
;
sigset_t
tmp
;
sigset_t
__user
*
ksigmask
;
if
(
sigsetsize
!=
sizeof
(
compat_sigset_t
))
return
-
EINVAL
;
if
(
copy_from_user
(
&
ss32
,
sigmask
,
sizeof
(
ss32
)))
return
-
EFAULT
;
sigset_from_compat
(
&
tmp
,
&
ss32
);
ksigmask
=
compat_alloc_user_space
(
sizeof
(
sigset_t
));
if
(
copy_to_user
(
ksigmask
,
&
tmp
,
sizeof
(
sigset_t
)))
return
-
EFAULT
;
return
sys_signalfd4
(
ufd
,
ksigmask
,
sizeof
(
sigset_t
),
flags
);
}
asmlinkage
long
compat_sys_signalfd
(
int
ufd
,
const
compat_sigset_t
__user
*
sigmask
,
compat_size_t
sigsetsize
)
{
return
compat_sys_signalfd4
(
ufd
,
sigmask
,
sigsetsize
,
0
);
}
#endif
/* CONFIG_SIGNALFD */
#ifdef CONFIG_FHANDLE
/*
* Exactly like fs/open.c:sys_open_by_handle_at(), except that it
...
...
fs/signalfd.c
浏览文件 @
7d197ed4
...
...
@@ -30,6 +30,7 @@
#include <linux/signalfd.h>
#include <linux/syscalls.h>
#include <linux/proc_fs.h>
#include <linux/compat.h>
void
signalfd_cleanup
(
struct
sighand_struct
*
sighand
)
{
...
...
@@ -311,3 +312,33 @@ SYSCALL_DEFINE3(signalfd, int, ufd, sigset_t __user *, user_mask,
{
return
sys_signalfd4
(
ufd
,
user_mask
,
sizemask
,
0
);
}
#ifdef CONFIG_COMPAT
COMPAT_SYSCALL_DEFINE4
(
signalfd4
,
int
,
ufd
,
const
compat_sigset_t
__user
*
,
sigmask
,
compat_size_t
,
sigsetsize
,
int
,
flags
)
{
compat_sigset_t
ss32
;
sigset_t
tmp
;
sigset_t
__user
*
ksigmask
;
if
(
sigsetsize
!=
sizeof
(
compat_sigset_t
))
return
-
EINVAL
;
if
(
copy_from_user
(
&
ss32
,
sigmask
,
sizeof
(
ss32
)))
return
-
EFAULT
;
sigset_from_compat
(
&
tmp
,
&
ss32
);
ksigmask
=
compat_alloc_user_space
(
sizeof
(
sigset_t
));
if
(
copy_to_user
(
ksigmask
,
&
tmp
,
sizeof
(
sigset_t
)))
return
-
EFAULT
;
return
sys_signalfd4
(
ufd
,
ksigmask
,
sizeof
(
sigset_t
),
flags
);
}
COMPAT_SYSCALL_DEFINE3
(
signalfd
,
int
,
ufd
,
const
compat_sigset_t
__user
*
,
sigmask
,
compat_size_t
,
sigsetsize
)
{
return
compat_sys_signalfd4
(
ufd
,
sigmask
,
sigsetsize
,
0
);
}
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录