Commit 3a49a0f7181c243aa04e6c5e44ca70a90ead8f9a

Authored by Heiko Carstens
1 parent 8eee9093cd

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,
... ... @@ -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 }