Commit 3a49a0f7181c243aa04e6c5e44ca70a90ead8f9a
1 parent
8eee9093cd
Exists in
master
and in
13 other branches
net/compat: convert to COMPAT_SYSCALL_DEFINE with changing parameter types
In order to allow the COMPAT_SYSCALL_DEFINE macro generate code that performs proper zero and sign extension convert all 64 bit parameters to their corresponding 32 bit compat counterparts. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Showing 2 changed files with 6 additions and 6 deletions Side-by-side Diff
include/linux/compat.h
... | ... | @@ -569,9 +569,9 @@ |
569 | 569 | unsigned vlen, unsigned int flags); |
570 | 570 | asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg, |
571 | 571 | unsigned int flags); |
572 | -asmlinkage long compat_sys_recv(int fd, void __user *buf, size_t len, | |
572 | +asmlinkage long compat_sys_recv(int fd, void __user *buf, compat_size_t len, | |
573 | 573 | unsigned flags); |
574 | -asmlinkage long compat_sys_recvfrom(int fd, void __user *buf, size_t len, | |
574 | +asmlinkage long compat_sys_recvfrom(int fd, void __user *buf, compat_size_t len, | |
575 | 575 | unsigned flags, struct sockaddr __user *addr, |
576 | 576 | int __user *addrlen); |
577 | 577 | asmlinkage long compat_sys_recvmmsg(int fd, struct compat_mmsghdr __user *mmsg, |
net/compat.c
... | ... | @@ -758,14 +758,14 @@ |
758 | 758 | return __sys_recvmsg(fd, (struct msghdr __user *)msg, flags | MSG_CMSG_COMPAT); |
759 | 759 | } |
760 | 760 | |
761 | -asmlinkage long compat_sys_recv(int fd, void __user *buf, size_t len, unsigned int flags) | |
761 | +COMPAT_SYSCALL_DEFINE4(recv, int, fd, void __user *, buf, compat_size_t, len, unsigned int, flags) | |
762 | 762 | { |
763 | 763 | return sys_recv(fd, buf, len, flags | MSG_CMSG_COMPAT); |
764 | 764 | } |
765 | 765 | |
766 | -asmlinkage long compat_sys_recvfrom(int fd, void __user *buf, size_t len, | |
767 | - unsigned int flags, struct sockaddr __user *addr, | |
768 | - int __user *addrlen) | |
766 | +COMPAT_SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, buf, compat_size_t, len, | |
767 | + unsigned int, flags, struct sockaddr __user *, addr, | |
768 | + int __user *, addrlen) | |
769 | 769 | { |
770 | 770 | return sys_recvfrom(fd, buf, len, flags | MSG_CMSG_COMPAT, addr, addrlen); |
771 | 771 | } |