Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
76b021d0
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
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看板
提交
76b021d0
编写于
3月 02, 2013
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
convert vmsplice to COMPAT_SYSCALL_DEFINE
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
8d2d5c4a
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
24 addition
and
30 deletion
+24
-30
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/compat_wrapper.S
+0
-7
arch/s390/kernel/syscalls.S
arch/s390/kernel/syscalls.S
+1
-1
arch/sparc/kernel/sys32.S
arch/sparc/kernel/sys32.S
+0
-1
arch/sparc/kernel/systbls_64.S
arch/sparc/kernel/systbls_64.S
+1
-1
fs/compat.c
fs/compat.c
+0
-20
fs/splice.c
fs/splice.c
+22
-0
未找到文件。
arch/s390/kernel/compat_wrapper.S
浏览文件 @
76b021d0
...
@@ -1252,13 +1252,6 @@ ENTRY(sys_tee_wrapper)
...
@@ -1252,13 +1252,6 @@ ENTRY(sys_tee_wrapper)
llgfr
%
r5
,%
r5
#
unsigned
int
llgfr
%
r5
,%
r5
#
unsigned
int
jg
sys_tee
jg
sys_tee
ENTRY
(
compat_sys_vmsplice_wrapper
)
lgfr
%
r2
,%
r2
#
int
llgtr
%
r3
,%
r3
#
compat_iovec
*
llgfr
%
r4
,%
r4
#
unsigned
int
llgfr
%
r5
,%
r5
#
unsigned
int
jg
compat_sys_vmsplice
ENTRY
(
sys_getcpu_wrapper
)
ENTRY
(
sys_getcpu_wrapper
)
llgtr
%
r2
,%
r2
#
unsigned
*
llgtr
%
r2
,%
r2
#
unsigned
*
llgtr
%
r3
,%
r3
#
unsigned
*
llgtr
%
r3
,%
r3
#
unsigned
*
...
...
arch/s390/kernel/syscalls.S
浏览文件 @
76b021d0
...
@@ -317,7 +317,7 @@ SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list)
...
@@ -317,7 +317,7 @@ SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list)
SYSCALL
(
sys_splice
,
sys_splice
,
sys_splice_wrapper
)
SYSCALL
(
sys_splice
,
sys_splice
,
sys_splice_wrapper
)
SYSCALL
(
sys_sync_file_range
,
sys_sync_file_range
,
sys_sync_file_range_wrapper
)
SYSCALL
(
sys_sync_file_range
,
sys_sync_file_range
,
sys_sync_file_range_wrapper
)
SYSCALL
(
sys_tee
,
sys_tee
,
sys_tee_wrapper
)
SYSCALL
(
sys_tee
,
sys_tee
,
sys_tee_wrapper
)
SYSCALL
(
sys_vmsplice
,
sys_vmsplice
,
compat_sys_vmsplice
_wrapper
)
SYSCALL
(
sys_vmsplice
,
sys_vmsplice
,
compat_sys_vmsplice
)
NI_SYSCALL
/
*
310
sys_move_pages
*/
NI_SYSCALL
/
*
310
sys_move_pages
*/
SYSCALL
(
sys_getcpu
,
sys_getcpu
,
sys_getcpu_wrapper
)
SYSCALL
(
sys_getcpu
,
sys_getcpu
,
sys_getcpu_wrapper
)
SYSCALL
(
sys_epoll_pwait
,
sys_epoll_pwait
,
compat_sys_epoll_pwait
)
SYSCALL
(
sys_epoll_pwait
,
sys_epoll_pwait
,
compat_sys_epoll_pwait
)
...
...
arch/sparc/kernel/sys32.S
浏览文件 @
76b021d0
...
@@ -49,7 +49,6 @@ SIGN1(sys32_recvfrom, compat_sys_recvfrom, %o0)
...
@@ -49,7 +49,6 @@ SIGN1(sys32_recvfrom, compat_sys_recvfrom, %o0)
SIGN1
(
sys32_recvmsg
,
compat_sys_recvmsg
,
%
o0
)
SIGN1
(
sys32_recvmsg
,
compat_sys_recvmsg
,
%
o0
)
SIGN1
(
sys32_sendmsg
,
compat_sys_sendmsg
,
%
o0
)
SIGN1
(
sys32_sendmsg
,
compat_sys_sendmsg
,
%
o0
)
SIGN2
(
sys32_sync_file_range
,
compat_sync_file_range
,
%
o0
,
%
o5
)
SIGN2
(
sys32_sync_file_range
,
compat_sync_file_range
,
%
o0
,
%
o5
)
SIGN1
(
sys32_vmsplice
,
compat_sys_vmsplice
,
%
o0
)
.
globl
sys32_mmap2
.
globl
sys32_mmap2
sys32_mmap2
:
sys32_mmap2
:
...
...
arch/sparc/kernel/systbls_64.S
浏览文件 @
76b021d0
...
@@ -23,7 +23,7 @@ sys_call_table32:
...
@@ -23,7 +23,7 @@ sys_call_table32:
/*
10
*/
.
word
sys_unlink
,
sunos_execv
,
sys_chdir
,
sys_chown16
,
sys_mknod
/*
10
*/
.
word
sys_unlink
,
sunos_execv
,
sys_chdir
,
sys_chown16
,
sys_mknod
/*
15
*/
.
word
sys_chmod
,
sys_lchown16
,
sys_brk
,
sys_nis_syscall
,
compat_sys_lseek
/*
15
*/
.
word
sys_chmod
,
sys_lchown16
,
sys_brk
,
sys_nis_syscall
,
compat_sys_lseek
/*
20
*/
.
word
sys_getpid
,
sys_capget
,
sys_capset
,
sys_setuid16
,
sys_getuid16
/*
20
*/
.
word
sys_getpid
,
sys_capget
,
sys_capset
,
sys_setuid16
,
sys_getuid16
/*
25
*/
.
word
sys32
_vmsplice
,
compat_sys_ptrace
,
sys_alarm
,
compat_sys_sigaltstack
,
sys_pause
/*
25
*/
.
word
compat_sys
_vmsplice
,
compat_sys_ptrace
,
sys_alarm
,
compat_sys_sigaltstack
,
sys_pause
/*
30
*/
.
word
compat_sys_utime
,
sys_lchown
,
sys_fchown
,
sys_access
,
sys_nice
/*
30
*/
.
word
compat_sys_utime
,
sys_lchown
,
sys_fchown
,
sys_access
,
sys_nice
.
word
sys_chown
,
sys_sync
,
sys_kill
,
compat_sys_newstat
,
compat_sys_sendfile
.
word
sys_chown
,
sys_sync
,
sys_kill
,
compat_sys_newstat
,
compat_sys_sendfile
/*
40
*/
.
word
compat_sys_newlstat
,
sys_dup
,
sys_sparc_pipe
,
compat_sys_times
,
sys_getuid
/*
40
*/
.
word
compat_sys_newlstat
,
sys_dup
,
sys_sparc_pipe
,
compat_sys_times
,
sys_getuid
...
...
fs/compat.c
浏览文件 @
76b021d0
...
@@ -1253,26 +1253,6 @@ compat_sys_pwritev(unsigned long fd, const struct compat_iovec __user *vec,
...
@@ -1253,26 +1253,6 @@ compat_sys_pwritev(unsigned long fd, const struct compat_iovec __user *vec,
return
compat_sys_pwritev64
(
fd
,
vec
,
vlen
,
pos
);
return
compat_sys_pwritev64
(
fd
,
vec
,
vlen
,
pos
);
}
}
asmlinkage
long
compat_sys_vmsplice
(
int
fd
,
const
struct
compat_iovec
__user
*
iov32
,
unsigned
int
nr_segs
,
unsigned
int
flags
)
{
unsigned
i
;
struct
iovec
__user
*
iov
;
if
(
nr_segs
>
UIO_MAXIOV
)
return
-
EINVAL
;
iov
=
compat_alloc_user_space
(
nr_segs
*
sizeof
(
struct
iovec
));
for
(
i
=
0
;
i
<
nr_segs
;
i
++
)
{
struct
compat_iovec
v
;
if
(
get_user
(
v
.
iov_base
,
&
iov32
[
i
].
iov_base
)
||
get_user
(
v
.
iov_len
,
&
iov32
[
i
].
iov_len
)
||
put_user
(
compat_ptr
(
v
.
iov_base
),
&
iov
[
i
].
iov_base
)
||
put_user
(
v
.
iov_len
,
&
iov
[
i
].
iov_len
))
return
-
EFAULT
;
}
return
sys_vmsplice
(
fd
,
iov
,
nr_segs
,
flags
);
}
/*
/*
* Exactly like fs/open.c:sys_open(), except that it doesn't set the
* Exactly like fs/open.c:sys_open(), except that it doesn't set the
* O_LARGEFILE flag.
* O_LARGEFILE flag.
...
...
fs/splice.c
浏览文件 @
76b021d0
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
#include <linux/security.h>
#include <linux/security.h>
#include <linux/gfp.h>
#include <linux/gfp.h>
#include <linux/socket.h>
#include <linux/socket.h>
#include <linux/compat.h>
/*
/*
* Attempt to steal a page from a pipe buffer. This should perhaps go into
* Attempt to steal a page from a pipe buffer. This should perhaps go into
...
@@ -1688,6 +1689,27 @@ SYSCALL_DEFINE4(vmsplice, int, fd, const struct iovec __user *, iov,
...
@@ -1688,6 +1689,27 @@ SYSCALL_DEFINE4(vmsplice, int, fd, const struct iovec __user *, iov,
return
error
;
return
error
;
}
}
#ifdef CONFIG_COMPAT
COMPAT_SYSCALL_DEFINE4
(
vmsplice
,
int
,
fd
,
const
struct
compat_iovec
__user
*
,
iov32
,
unsigned
int
,
nr_segs
,
unsigned
int
,
flags
)
{
unsigned
i
;
struct
iovec
__user
*
iov
;
if
(
nr_segs
>
UIO_MAXIOV
)
return
-
EINVAL
;
iov
=
compat_alloc_user_space
(
nr_segs
*
sizeof
(
struct
iovec
));
for
(
i
=
0
;
i
<
nr_segs
;
i
++
)
{
struct
compat_iovec
v
;
if
(
get_user
(
v
.
iov_base
,
&
iov32
[
i
].
iov_base
)
||
get_user
(
v
.
iov_len
,
&
iov32
[
i
].
iov_len
)
||
put_user
(
compat_ptr
(
v
.
iov_base
),
&
iov
[
i
].
iov_base
)
||
put_user
(
v
.
iov_len
,
&
iov
[
i
].
iov_len
))
return
-
EFAULT
;
}
return
sys_vmsplice
(
fd
,
iov
,
nr_segs
,
flags
);
}
#endif
SYSCALL_DEFINE6
(
splice
,
int
,
fd_in
,
loff_t
__user
*
,
off_in
,
SYSCALL_DEFINE6
(
splice
,
int
,
fd_in
,
loff_t
__user
*
,
off_in
,
int
,
fd_out
,
loff_t
__user
*
,
off_out
,
int
,
fd_out
,
loff_t
__user
*
,
off_out
,
size_t
,
len
,
unsigned
int
,
flags
)
size_t
,
len
,
unsigned
int
,
flags
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录