Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
19f4fc3a
Commit
19f4fc3a
authored
Feb 24, 2013
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
convert sendfile{,64} to COMPAT_SYSCALL_DEFINE
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
7d197ed4
Changes
20
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
54 additions
and
175 deletions
+54
-175
arch/mips/kernel/linux32.c
arch/mips/kernel/linux32.c
+0
-20
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/parisc/kernel/sys_parisc32.c
arch/parisc/kernel/sys_parisc32.c
+0
-19
arch/parisc/kernel/syscall_table.S
arch/parisc/kernel/syscall_table.S
+2
-2
arch/powerpc/include/asm/systbl.h
arch/powerpc/include/asm/systbl.h
+2
-2
arch/powerpc/kernel/sys_ppc32.c
arch/powerpc/kernel/sys_ppc32.c
+0
-18
arch/s390/kernel/compat_linux.c
arch/s390/kernel/compat_linux.c
+0
-42
arch/s390/kernel/compat_linux.h
arch/s390/kernel/compat_linux.h
+0
-4
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/compat_wrapper.S
+0
-14
arch/s390/kernel/syscalls.S
arch/s390/kernel/syscalls.S
+2
-2
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
arch/x86/ia32/sys_ia32.c
arch/x86/ia32/sys_ia32.c
+0
-20
arch/x86/include/asm/sys_ia32.h
arch/x86/include/asm/sys_ia32.h
+0
-1
arch/x86/syscalls/syscall_32.tbl
arch/x86/syscalls/syscall_32.tbl
+1
-1
fs/compat.c
fs/compat.c
+0
-22
fs/read_write.c
fs/read_write.c
+42
-2
fs/read_write.h
fs/read_write.h
+0
-2
include/linux/compat.h
include/linux/compat.h
+2
-0
No files found.
arch/mips/kernel/linux32.c
View file @
19f4fc3a
...
@@ -226,26 +226,6 @@ SYSCALL_DEFINE1(32_personality, unsigned long, personality)
...
@@ -226,26 +226,6 @@ SYSCALL_DEFINE1(32_personality, unsigned long, personality)
return
ret
;
return
ret
;
}
}
SYSCALL_DEFINE4
(
32
_sendfile
,
long
,
out_fd
,
long
,
in_fd
,
compat_off_t
__user
*
,
offset
,
s32
,
count
)
{
mm_segment_t
old_fs
=
get_fs
();
int
ret
;
off_t
of
;
if
(
offset
&&
get_user
(
of
,
offset
))
return
-
EFAULT
;
set_fs
(
KERNEL_DS
);
ret
=
sys_sendfile
(
out_fd
,
in_fd
,
offset
?
(
off_t
__user
*
)
&
of
:
NULL
,
count
);
set_fs
(
old_fs
);
if
(
offset
&&
put_user
(
of
,
offset
))
return
-
EFAULT
;
return
ret
;
}
asmlinkage
ssize_t
sys32_readahead
(
int
fd
,
u32
pad0
,
u64
a2
,
u64
a3
,
asmlinkage
ssize_t
sys32_readahead
(
int
fd
,
u32
pad0
,
u64
a2
,
u64
a3
,
size_t
count
)
size_t
count
)
{
{
...
...
arch/mips/kernel/scall64-n32.S
View file @
19f4fc3a
...
@@ -143,7 +143,7 @@ EXPORT(sysn32_call_table)
...
@@ -143,7 +143,7 @@ EXPORT(sysn32_call_table)
PTR
compat_sys_setitimer
PTR
compat_sys_setitimer
PTR
sys_alarm
PTR
sys_alarm
PTR
sys_getpid
PTR
sys_getpid
PTR
sys_32
_sendfile
PTR
compat_sys
_sendfile
PTR
sys_socket
/*
6040
*/
PTR
sys_socket
/*
6040
*/
PTR
sys_connect
PTR
sys_connect
PTR
sys_accept
PTR
sys_accept
...
...
arch/mips/kernel/scall64-o32.S
View file @
19f4fc3a
...
@@ -399,7 +399,7 @@ sys_call_table:
...
@@ -399,7 +399,7 @@ sys_call_table:
PTR
sys_capget
PTR
sys_capget
PTR
sys_capset
/*
4205
*/
PTR
sys_capset
/*
4205
*/
PTR
compat_sys_sigaltstack
PTR
compat_sys_sigaltstack
PTR
sys_32
_sendfile
PTR
compat_sys
_sendfile
PTR
sys_ni_syscall
PTR
sys_ni_syscall
PTR
sys_ni_syscall
PTR
sys_ni_syscall
PTR
sys_mips_mmap2
/*
4210
*/
PTR
sys_mips_mmap2
/*
4210
*/
...
...
arch/parisc/kernel/sys_parisc32.c
View file @
19f4fc3a
...
@@ -60,25 +60,6 @@ asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23,
...
@@ -60,25 +60,6 @@ asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23,
return
-
ENOSYS
;
return
-
ENOSYS
;
}
}
/* Note: it is necessary to treat out_fd and in_fd as unsigned ints, with the
* corresponding cast to a signed int to insure that the proper conversion
* (sign extension) between the register representation of a signed int (msr in
* 32-bit mode) and the register representation of a signed int (msr in 64-bit
* mode) is performed.
*/
asmlinkage
long
sys32_sendfile
(
u32
out_fd
,
u32
in_fd
,
compat_off_t
__user
*
offset
,
compat_size_t
count
)
{
return
compat_sys_sendfile
((
int
)
out_fd
,
(
int
)
in_fd
,
offset
,
count
);
}
asmlinkage
long
sys32_sendfile64
(
u32
out_fd
,
u32
in_fd
,
compat_loff_t
__user
*
offset
,
compat_size_t
count
)
{
return
sys_sendfile64
((
int
)
out_fd
,
(
int
)
in_fd
,
(
loff_t
__user
*
)
offset
,
count
);
}
asmlinkage
long
sys32_semctl
(
int
semid
,
int
semnum
,
int
cmd
,
union
semun
arg
)
asmlinkage
long
sys32_semctl
(
int
semid
,
int
semnum
,
int
cmd
,
union
semun
arg
)
{
{
union
semun
u
;
union
semun
u
;
...
...
arch/parisc/kernel/syscall_table.S
View file @
19f4fc3a
...
@@ -198,7 +198,7 @@
...
@@ -198,7 +198,7 @@
ENTRY_SAME
(
madvise
)
ENTRY_SAME
(
madvise
)
ENTRY_SAME
(
clone_wrapper
)
/*
120
*/
ENTRY_SAME
(
clone_wrapper
)
/*
120
*/
ENTRY_SAME
(
setdomainname
)
ENTRY_SAME
(
setdomainname
)
ENTRY_
DIFF
(
sendfile
)
ENTRY_
COMP
(
sendfile
)
/
*
struct
sockaddr
...
*/
/
*
struct
sockaddr
...
*/
ENTRY_SAME
(
recvfrom
)
ENTRY_SAME
(
recvfrom
)
/
*
struct
timex
contains
longs
*/
/
*
struct
timex
contains
longs
*/
...
@@ -304,7 +304,7 @@
...
@@ -304,7 +304,7 @@
ENTRY_SAME
(
gettid
)
ENTRY_SAME
(
gettid
)
ENTRY_OURS
(
readahead
)
ENTRY_OURS
(
readahead
)
ENTRY_SAME
(
tkill
)
ENTRY_SAME
(
tkill
)
ENTRY_
DIFF
(
sendfile64
)
ENTRY_
COMP
(
sendfile64
)
ENTRY_COMP
(
futex
)
/*
210
*/
ENTRY_COMP
(
futex
)
/*
210
*/
ENTRY_COMP
(
sched_setaffinity
)
ENTRY_COMP
(
sched_setaffinity
)
ENTRY_COMP
(
sched_getaffinity
)
ENTRY_COMP
(
sched_getaffinity
)
...
...
arch/powerpc/include/asm/systbl.h
View file @
19f4fc3a
...
@@ -190,7 +190,7 @@ SYSCALL_SPU(getcwd)
...
@@ -190,7 +190,7 @@ SYSCALL_SPU(getcwd)
SYSCALL_SPU
(
capget
)
SYSCALL_SPU
(
capget
)
SYSCALL_SPU
(
capset
)
SYSCALL_SPU
(
capset
)
COMPAT_SYS
(
sigaltstack
)
COMPAT_SYS
(
sigaltstack
)
SYSX_SPU
(
sys_sendfile
,
compat_sys_sendfile_wrapper
,
sys_
sendfile
)
COMPAT_SYS_SPU
(
sendfile
)
SYSCALL
(
ni_syscall
)
SYSCALL
(
ni_syscall
)
SYSCALL
(
ni_syscall
)
SYSCALL
(
ni_syscall
)
PPC_SYS
(
vfork
)
PPC_SYS
(
vfork
)
...
@@ -230,7 +230,7 @@ COMPAT_SYS_SPU(sched_setaffinity)
...
@@ -230,7 +230,7 @@ COMPAT_SYS_SPU(sched_setaffinity)
COMPAT_SYS_SPU
(
sched_getaffinity
)
COMPAT_SYS_SPU
(
sched_getaffinity
)
SYSCALL
(
ni_syscall
)
SYSCALL
(
ni_syscall
)
SYSCALL
(
ni_syscall
)
SYSCALL
(
ni_syscall
)
SYS
X
(
sys_ni_syscall
,
compat_sys_sendfile64_wrapper
,
sys_
sendfile64
)
SYS
32ONLY
(
sendfile64
)
COMPAT_SYS_SPU
(
io_setup
)
COMPAT_SYS_SPU
(
io_setup
)
SYSCALL_SPU
(
io_destroy
)
SYSCALL_SPU
(
io_destroy
)
COMPAT_SYS_SPU
(
io_getevents
)
COMPAT_SYS_SPU
(
io_getevents
)
...
...
arch/powerpc/kernel/sys_ppc32.c
View file @
19f4fc3a
...
@@ -128,24 +128,6 @@ long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t pt
...
@@ -128,24 +128,6 @@ long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t pt
}
}
#endif
#endif
/* Note: it is necessary to treat out_fd and in_fd as unsigned ints,
* with the corresponding cast to a signed int to insure that the
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
* and the register representation of a signed int (msr in 64-bit mode) is performed.
*/
asmlinkage
long
compat_sys_sendfile_wrapper
(
u32
out_fd
,
u32
in_fd
,
compat_off_t
__user
*
offset
,
u32
count
)
{
return
compat_sys_sendfile
((
int
)
out_fd
,
(
int
)
in_fd
,
offset
,
count
);
}
asmlinkage
long
compat_sys_sendfile64_wrapper
(
u32
out_fd
,
u32
in_fd
,
compat_loff_t
__user
*
offset
,
u32
count
)
{
return
sys_sendfile
((
int
)
out_fd
,
(
int
)
in_fd
,
(
off_t
__user
*
)
offset
,
count
);
}
unsigned
long
compat_sys_mmap2
(
unsigned
long
addr
,
size_t
len
,
unsigned
long
compat_sys_mmap2
(
unsigned
long
addr
,
size_t
len
,
unsigned
long
prot
,
unsigned
long
flags
,
unsigned
long
prot
,
unsigned
long
flags
,
unsigned
long
fd
,
unsigned
long
pgoff
)
unsigned
long
fd
,
unsigned
long
pgoff
)
...
...
arch/s390/kernel/compat_linux.c
View file @
19f4fc3a
...
@@ -373,48 +373,6 @@ asmlinkage compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 coun
...
@@ -373,48 +373,6 @@ asmlinkage compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 coun
return
sys_readahead
(
fd
,
((
loff_t
)
AA
(
offhi
)
<<
32
)
|
AA
(
offlo
),
count
);
return
sys_readahead
(
fd
,
((
loff_t
)
AA
(
offhi
)
<<
32
)
|
AA
(
offlo
),
count
);
}
}
asmlinkage
long
sys32_sendfile
(
int
out_fd
,
int
in_fd
,
compat_off_t
__user
*
offset
,
size_t
count
)
{
mm_segment_t
old_fs
=
get_fs
();
int
ret
;
off_t
of
;
if
(
offset
&&
get_user
(
of
,
offset
))
return
-
EFAULT
;
set_fs
(
KERNEL_DS
);
ret
=
sys_sendfile
(
out_fd
,
in_fd
,
offset
?
(
off_t
__force
__user
*
)
&
of
:
NULL
,
count
);
set_fs
(
old_fs
);
if
(
offset
&&
put_user
(
of
,
offset
))
return
-
EFAULT
;
return
ret
;
}
asmlinkage
long
sys32_sendfile64
(
int
out_fd
,
int
in_fd
,
compat_loff_t
__user
*
offset
,
s32
count
)
{
mm_segment_t
old_fs
=
get_fs
();
int
ret
;
loff_t
lof
;
if
(
offset
&&
get_user
(
lof
,
offset
))
return
-
EFAULT
;
set_fs
(
KERNEL_DS
);
ret
=
sys_sendfile64
(
out_fd
,
in_fd
,
offset
?
(
loff_t
__force
__user
*
)
&
lof
:
NULL
,
count
);
set_fs
(
old_fs
);
if
(
offset
&&
put_user
(
lof
,
offset
))
return
-
EFAULT
;
return
ret
;
}
struct
stat64_emu31
{
struct
stat64_emu31
{
unsigned
long
long
st_dev
;
unsigned
long
long
st_dev
;
unsigned
int
__pad1
;
unsigned
int
__pad1
;
...
...
arch/s390/kernel/compat_linux.h
View file @
19f4fc3a
...
@@ -106,10 +106,6 @@ long sys32_pread64(unsigned int fd, char __user *ubuf, size_t count,
...
@@ -106,10 +106,6 @@ long sys32_pread64(unsigned int fd, char __user *ubuf, size_t count,
long
sys32_pwrite64
(
unsigned
int
fd
,
const
char
__user
*
ubuf
,
long
sys32_pwrite64
(
unsigned
int
fd
,
const
char
__user
*
ubuf
,
size_t
count
,
u32
poshi
,
u32
poslo
);
size_t
count
,
u32
poshi
,
u32
poslo
);
compat_ssize_t
sys32_readahead
(
int
fd
,
u32
offhi
,
u32
offlo
,
s32
count
);
compat_ssize_t
sys32_readahead
(
int
fd
,
u32
offhi
,
u32
offlo
,
s32
count
);
long
sys32_sendfile
(
int
out_fd
,
int
in_fd
,
compat_off_t
__user
*
offset
,
size_t
count
);
long
sys32_sendfile64
(
int
out_fd
,
int
in_fd
,
compat_loff_t
__user
*
offset
,
s32
count
);
long
sys32_stat64
(
const
char
__user
*
filename
,
struct
stat64_emu31
__user
*
statbuf
);
long
sys32_stat64
(
const
char
__user
*
filename
,
struct
stat64_emu31
__user
*
statbuf
);
long
sys32_lstat64
(
const
char
__user
*
filename
,
long
sys32_lstat64
(
const
char
__user
*
filename
,
struct
stat64_emu31
__user
*
statbuf
);
struct
stat64_emu31
__user
*
statbuf
);
...
...
arch/s390/kernel/compat_wrapper.S
View file @
19f4fc3a
...
@@ -666,13 +666,6 @@ ENTRY(sys32_capset_wrapper)
...
@@ -666,13 +666,6 @@ ENTRY(sys32_capset_wrapper)
llgtr
%
r3
,%
r3
#
const
cap_user_data_t
llgtr
%
r3
,%
r3
#
const
cap_user_data_t
jg
sys_capset
#
branch
to
system
call
jg
sys_capset
#
branch
to
system
call
ENTRY
(
sys32_sendfile_wrapper
)
lgfr
%
r2
,%
r2
#
int
lgfr
%
r3
,%
r3
#
int
llgtr
%
r4
,%
r4
#
__kernel_off_emu31_t
*
llgfr
%
r5
,%
r5
#
size_t
jg
sys32_sendfile
#
branch
to
system
call
#
sys32_vfork_wrapper
#
done
in
vfork_glue
#
sys32_vfork_wrapper
#
done
in
vfork_glue
ENTRY
(
sys32_truncate64_wrapper
)
ENTRY
(
sys32_truncate64_wrapper
)
...
@@ -1348,13 +1341,6 @@ ENTRY(sys32_readahead_wrapper)
...
@@ -1348,13 +1341,6 @@ ENTRY(sys32_readahead_wrapper)
lgfr
%
r5
,%
r5
#
s32
lgfr
%
r5
,%
r5
#
s32
jg
sys32_readahead
#
branch
to
system
call
jg
sys32_readahead
#
branch
to
system
call
ENTRY
(
sys32_sendfile64_wrapper
)
lgfr
%
r2
,%
r2
#
int
lgfr
%
r3
,%
r3
#
int
llgtr
%
r4
,%
r4
#
compat_loff_t
*
lgfr
%
r5
,%
r5
#
s32
jg
sys32_sendfile64
#
branch
to
system
call
ENTRY
(
sys_tkill_wrapper
)
ENTRY
(
sys_tkill_wrapper
)
lgfr
%
r2
,%
r2
#
pid_t
lgfr
%
r2
,%
r2
#
pid_t
lgfr
%
r3
,%
r3
#
int
lgfr
%
r3
,%
r3
#
int
...
...
arch/s390/kernel/syscalls.S
View file @
19f4fc3a
...
@@ -195,7 +195,7 @@ SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
...
@@ -195,7 +195,7 @@ SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
SYSCALL
(
sys_capget
,
sys_capget
,
sys32_capget_wrapper
)
SYSCALL
(
sys_capget
,
sys_capget
,
sys32_capget_wrapper
)
SYSCALL
(
sys_capset
,
sys_capset
,
sys32_capset_wrapper
)
/
*
185
*/
SYSCALL
(
sys_capset
,
sys_capset
,
sys32_capset_wrapper
)
/
*
185
*/
SYSCALL
(
sys_sigaltstack
,
sys_sigaltstack
,
compat_sys_sigaltstack
)
SYSCALL
(
sys_sigaltstack
,
sys_sigaltstack
,
compat_sys_sigaltstack
)
SYSCALL
(
sys_sendfile
,
sys_sendfile64
,
sys32_sendfile_wrapper
)
SYSCALL
(
sys_sendfile
,
sys_sendfile64
,
compat_sys_sendfile
)
NI_SYSCALL
/
*
streams1
*/
NI_SYSCALL
/
*
streams1
*/
NI_SYSCALL
/
*
streams2
*/
NI_SYSCALL
/
*
streams2
*/
SYSCALL
(
sys_vfork
,
sys_vfork
,
sys_vfork
)
/
*
190
*/
SYSCALL
(
sys_vfork
,
sys_vfork
,
sys_vfork
)
/
*
190
*/
...
@@ -231,7 +231,7 @@ SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
...
@@ -231,7 +231,7 @@ SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
SYSCALL
(
sys_getdents64
,
sys_getdents64
,
sys32_getdents64_wrapper
)
/
*
220
*/
SYSCALL
(
sys_getdents64
,
sys_getdents64
,
sys32_getdents64_wrapper
)
/
*
220
*/
SYSCALL
(
sys_fcntl64
,
sys_ni_syscall
,
compat_sys_fcntl64_wrapper
)
SYSCALL
(
sys_fcntl64
,
sys_ni_syscall
,
compat_sys_fcntl64_wrapper
)
SYSCALL
(
sys_readahead
,
sys_readahead
,
sys32_readahead_wrapper
)
SYSCALL
(
sys_readahead
,
sys_readahead
,
sys32_readahead_wrapper
)
SYSCALL
(
sys_sendfile64
,
sys_ni_syscall
,
sys32_sendfile64_wrapper
)
SYSCALL
(
sys_sendfile64
,
sys_ni_syscall
,
compat_sys_sendfile64
)
SYSCALL
(
sys_setxattr
,
sys_setxattr
,
sys32_setxattr_wrapper
)
SYSCALL
(
sys_setxattr
,
sys_setxattr
,
sys32_setxattr_wrapper
)
SYSCALL
(
sys_lsetxattr
,
sys_lsetxattr
,
sys32_lsetxattr_wrapper
)
/
*
225
*/
SYSCALL
(
sys_lsetxattr
,
sys_lsetxattr
,
sys32_lsetxattr_wrapper
)
/
*
225
*/
SYSCALL
(
sys_fsetxattr
,
sys_fsetxattr
,
sys32_fsetxattr_wrapper
)
SYSCALL
(
sys_fsetxattr
,
sys_fsetxattr
,
sys32_fsetxattr_wrapper
)
...
...
arch/sparc/kernel/sys32.S
View file @
19f4fc3a
...
@@ -46,7 +46,6 @@ SIGN1(sys32_io_submit, compat_sys_io_submit, %o1)
...
@@ -46,7 +46,6 @@ SIGN1(sys32_io_submit, compat_sys_io_submit, %o1)
SIGN1
(
sys32_mq_open
,
compat_sys_mq_open
,
%
o1
)
SIGN1
(
sys32_mq_open
,
compat_sys_mq_open
,
%
o1
)
SIGN1
(
sys32_select
,
compat_sys_select
,
%
o0
)
SIGN1
(
sys32_select
,
compat_sys_select
,
%
o0
)
SIGN3
(
sys32_futex
,
compat_sys_futex
,
%
o1
,
%
o2
,
%
o5
)
SIGN3
(
sys32_futex
,
compat_sys_futex
,
%
o1
,
%
o2
,
%
o5
)
SIGN2
(
sys32_sendfile
,
compat_sys_sendfile
,
%
o0
,
%
o1
)
SIGN1
(
sys32_recvfrom
,
compat_sys_recvfrom
,
%
o0
)
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
)
...
...
arch/sparc/kernel/systbls_64.S
View file @
19f4fc3a
...
@@ -25,7 +25,7 @@ sys_call_table32:
...
@@ -25,7 +25,7 @@ sys_call_table32:
/*
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
sys32_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
,
sys32
_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
.
word
sys_umount
,
sys_setgid16
,
sys_getgid16
,
sys_signal
,
sys_geteuid16
.
word
sys_umount
,
sys_setgid16
,
sys_getgid16
,
sys_signal
,
sys_geteuid16
/*
50
*/
.
word
sys_getegid16
,
sys_acct
,
sys_nis_syscall
,
sys_getgid
,
compat_sys_ioctl
/*
50
*/
.
word
sys_getegid16
,
sys_acct
,
sys_nis_syscall
,
sys_getgid
,
compat_sys_ioctl
...
...
arch/x86/ia32/sys_ia32.c
View file @
19f4fc3a
...
@@ -194,26 +194,6 @@ asmlinkage long sys32_pwrite(unsigned int fd, const char __user *ubuf,
...
@@ -194,26 +194,6 @@ asmlinkage long sys32_pwrite(unsigned int fd, const char __user *ubuf,
}
}
asmlinkage
long
sys32_sendfile
(
int
out_fd
,
int
in_fd
,
compat_off_t
__user
*
offset
,
s32
count
)
{
mm_segment_t
old_fs
=
get_fs
();
int
ret
;
off_t
of
;
if
(
offset
&&
get_user
(
of
,
offset
))
return
-
EFAULT
;
set_fs
(
KERNEL_DS
);
ret
=
sys_sendfile
(
out_fd
,
in_fd
,
offset
?
(
off_t
__user
*
)
&
of
:
NULL
,
count
);
set_fs
(
old_fs
);
if
(
offset
&&
put_user
(
of
,
offset
))
return
-
EFAULT
;
return
ret
;
}
/*
/*
* Some system calls that need sign extended arguments. This could be
* Some system calls that need sign extended arguments. This could be
* done by a generic wrapper.
* done by a generic wrapper.
...
...
arch/x86/include/asm/sys_ia32.h
View file @
19f4fc3a
...
@@ -41,7 +41,6 @@ asmlinkage long sys32_pread(unsigned int, char __user *, u32, u32, u32);
...
@@ -41,7 +41,6 @@ asmlinkage long sys32_pread(unsigned int, char __user *, u32, u32, u32);
asmlinkage
long
sys32_pwrite
(
unsigned
int
,
const
char
__user
*
,
u32
,
u32
,
u32
);
asmlinkage
long
sys32_pwrite
(
unsigned
int
,
const
char
__user
*
,
u32
,
u32
,
u32
);
asmlinkage
long
sys32_personality
(
unsigned
long
);
asmlinkage
long
sys32_personality
(
unsigned
long
);
asmlinkage
long
sys32_sendfile
(
int
,
int
,
compat_off_t
__user
*
,
s32
);
long
sys32_kill
(
int
,
int
);
long
sys32_kill
(
int
,
int
);
long
sys32_fadvise64_64
(
int
,
__u32
,
__u32
,
__u32
,
__u32
,
int
);
long
sys32_fadvise64_64
(
int
,
__u32
,
__u32
,
__u32
,
__u32
,
int
);
...
...
arch/x86/syscalls/syscall_32.tbl
View file @
19f4fc3a
...
@@ -193,7 +193,7 @@
...
@@ -193,7 +193,7 @@
184 i386 capget sys_capget
184 i386 capget sys_capget
185 i386 capset sys_capset
185 i386 capset sys_capset
186 i386 sigaltstack sys_sigaltstack compat_sys_sigaltstack
186 i386 sigaltstack sys_sigaltstack compat_sys_sigaltstack
187 i386 sendfile sys_sendfile
sys32
_sendfile
187 i386 sendfile sys_sendfile
compat_sys
_sendfile
188 i386 getpmsg
188 i386 getpmsg
189 i386 putpmsg
189 i386 putpmsg
190 i386 vfork sys_vfork stub32_vfork
190 i386 vfork sys_vfork stub32_vfork
...
...
fs/compat.c
View file @
19f4fc3a
...
@@ -1718,25 +1718,3 @@ COMPAT_SYSCALL_DEFINE3(open_by_handle_at, int, mountdirfd,
...
@@ -1718,25 +1718,3 @@ COMPAT_SYSCALL_DEFINE3(open_by_handle_at, int, mountdirfd,
return
do_handle_open
(
mountdirfd
,
handle
,
flags
);
return
do_handle_open
(
mountdirfd
,
handle
,
flags
);
}
}
#endif
#endif
#ifdef __ARCH_WANT_COMPAT_SYS_SENDFILE
asmlinkage
long
compat_sys_sendfile
(
int
out_fd
,
int
in_fd
,
compat_off_t
__user
*
offset
,
compat_size_t
count
)
{
loff_t
pos
;
off_t
off
;
ssize_t
ret
;
if
(
offset
)
{
if
(
unlikely
(
get_user
(
off
,
offset
)))
return
-
EFAULT
;
pos
=
off
;
ret
=
do_sendfile
(
out_fd
,
in_fd
,
&
pos
,
count
,
MAX_NON_LFS
);
if
(
unlikely
(
put_user
(
pos
,
offset
)))
return
-
EFAULT
;
return
ret
;
}
return
do_sendfile
(
out_fd
,
in_fd
,
NULL
,
count
,
0
);
}
#endif
/* __ARCH_WANT_COMPAT_SYS_SENDFILE */
fs/read_write.c
View file @
19f4fc3a
...
@@ -853,8 +853,8 @@ SYSCALL_DEFINE5(pwritev, unsigned long, fd, const struct iovec __user *, vec,
...
@@ -853,8 +853,8 @@ SYSCALL_DEFINE5(pwritev, unsigned long, fd, const struct iovec __user *, vec,
return
ret
;
return
ret
;
}
}
s
size_t
do_sendfile
(
int
out_fd
,
int
in_fd
,
loff_t
*
ppos
,
size_t
count
,
s
tatic
ssize_t
do_sendfile
(
int
out_fd
,
int
in_fd
,
loff_t
*
ppos
,
loff_t
max
)
size_t
count
,
loff_t
max
)
{
{
struct
fd
in
,
out
;
struct
fd
in
,
out
;
struct
inode
*
in_inode
,
*
out_inode
;
struct
inode
*
in_inode
,
*
out_inode
;
...
@@ -978,3 +978,43 @@ SYSCALL_DEFINE4(sendfile64, int, out_fd, int, in_fd, loff_t __user *, offset, si
...
@@ -978,3 +978,43 @@ SYSCALL_DEFINE4(sendfile64, int, out_fd, int, in_fd, loff_t __user *, offset, si
return
do_sendfile
(
out_fd
,
in_fd
,
NULL
,
count
,
0
);
return
do_sendfile
(
out_fd
,
in_fd
,
NULL
,
count
,
0
);
}
}
#ifdef CONFIG_COMPAT
COMPAT_SYSCALL_DEFINE4
(
sendfile
,
int
,
out_fd
,
int
,
in_fd
,
compat_off_t
__user
*
,
offset
,
compat_size_t
,
count
)
{
loff_t
pos
;
off_t
off
;
ssize_t
ret
;
if
(
offset
)
{
if
(
unlikely
(
get_user
(
off
,
offset
)))
return
-
EFAULT
;
pos
=
off
;
ret
=
do_sendfile
(
out_fd
,
in_fd
,
&
pos
,
count
,
MAX_NON_LFS
);
if
(
unlikely
(
put_user
(
pos
,
offset
)))
return
-
EFAULT
;
return
ret
;
}
return
do_sendfile
(
out_fd
,
in_fd
,
NULL
,
count
,
0
);
}
COMPAT_SYSCALL_DEFINE4
(
sendfile64
,
int
,
out_fd
,
int
,
in_fd
,
compat_loff_t
__user
*
,
offset
,
compat_size_t
,
count
)
{
loff_t
pos
;
ssize_t
ret
;
if
(
offset
)
{
if
(
unlikely
(
copy_from_user
(
&
pos
,
offset
,
sizeof
(
loff_t
))))
return
-
EFAULT
;
ret
=
do_sendfile
(
out_fd
,
in_fd
,
&
pos
,
count
,
0
);
if
(
unlikely
(
put_user
(
pos
,
offset
)))
return
-
EFAULT
;
return
ret
;
}
return
do_sendfile
(
out_fd
,
in_fd
,
NULL
,
count
,
0
);
}
#endif
fs/read_write.h
View file @
19f4fc3a
...
@@ -12,5 +12,3 @@ ssize_t do_sync_readv_writev(struct file *filp, const struct iovec *iov,
...
@@ -12,5 +12,3 @@ ssize_t do_sync_readv_writev(struct file *filp, const struct iovec *iov,
unsigned
long
nr_segs
,
size_t
len
,
loff_t
*
ppos
,
iov_fn_t
fn
);
unsigned
long
nr_segs
,
size_t
len
,
loff_t
*
ppos
,
iov_fn_t
fn
);
ssize_t
do_loop_readv_writev
(
struct
file
*
filp
,
struct
iovec
*
iov
,
ssize_t
do_loop_readv_writev
(
struct
file
*
filp
,
struct
iovec
*
iov
,
unsigned
long
nr_segs
,
loff_t
*
ppos
,
io_fn_t
fn
);
unsigned
long
nr_segs
,
loff_t
*
ppos
,
io_fn_t
fn
);
ssize_t
do_sendfile
(
int
out_fd
,
int
in_fd
,
loff_t
*
ppos
,
size_t
count
,
loff_t
max
);
include/linux/compat.h
View file @
19f4fc3a
...
@@ -670,6 +670,8 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid,
...
@@ -670,6 +670,8 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid,
asmlinkage
long
compat_sys_sendfile
(
int
out_fd
,
int
in_fd
,
asmlinkage
long
compat_sys_sendfile
(
int
out_fd
,
int
in_fd
,
compat_off_t
__user
*
offset
,
compat_size_t
count
);
compat_off_t
__user
*
offset
,
compat_size_t
count
);
asmlinkage
long
compat_sys_sendfile64
(
int
out_fd
,
int
in_fd
,
compat_loff_t
__user
*
offset
,
compat_size_t
count
);
asmlinkage
long
compat_sys_sigaltstack
(
const
compat_stack_t
__user
*
uss_ptr
,
asmlinkage
long
compat_sys_sigaltstack
(
const
compat_stack_t
__user
*
uss_ptr
,
compat_stack_t
__user
*
uoss_ptr
);
compat_stack_t
__user
*
uoss_ptr
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment