Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14cc0b55 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull signal/compat fixes from Al Viro:
 "Fixes for several regressions introduced in the last signal.git pile,
  along with fixing bugs in truncate and ftruncate compat (on just about
  anything biarch at least one of those two had been done wrong)."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
  compat: restore timerfd settime and gettime compat syscalls
  [regression] braino in "sparc: convert to ksignal"
  fix compat truncate/ftruncate
  switch lseek to COMPAT_SYSCALL_DEFINE
  lseek() and truncate() on sparc really need sign extension
parents 3cfb0774 0e803baf
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -40,7 +40,7 @@ __SYSCALL(15, sys_chmod)
__SYSCALL(16,  sys_lchown16)
__SYSCALL(16,  sys_lchown16)
__SYSCALL(17,  sys_ni_syscall)			/* 17 was sys_break */
__SYSCALL(17,  sys_ni_syscall)			/* 17 was sys_break */
__SYSCALL(18,  sys_ni_syscall)			/* 18 was sys_stat */
__SYSCALL(18,  sys_ni_syscall)			/* 18 was sys_stat */
__SYSCALL(19,  compat_sys_lseek_wrapper)
__SYSCALL(19,  compat_sys_lseek)
__SYSCALL(20,  sys_getpid)
__SYSCALL(20,  sys_getpid)
__SYSCALL(21,  compat_sys_mount)
__SYSCALL(21,  compat_sys_mount)
__SYSCALL(22,  sys_ni_syscall)			/* 22 was sys_umount */
__SYSCALL(22,  sys_ni_syscall)			/* 22 was sys_umount */
@@ -113,8 +113,8 @@ __SYSCALL(88, sys_reboot)
__SYSCALL(89,  sys_ni_syscall)			/* 89 was sys_readdir */
__SYSCALL(89,  sys_ni_syscall)			/* 89 was sys_readdir */
__SYSCALL(90,  sys_ni_syscall)			/* 90 was sys_mmap */
__SYSCALL(90,  sys_ni_syscall)			/* 90 was sys_mmap */
__SYSCALL(91,  sys_munmap)
__SYSCALL(91,  sys_munmap)
__SYSCALL(92,  sys_truncate)
__SYSCALL(92,  compat_sys_truncate)
__SYSCALL(93,  sys_ftruncate)
__SYSCALL(93,  compat_sys_ftruncate)
__SYSCALL(94,  sys_fchmod)
__SYSCALL(94,  sys_fchmod)
__SYSCALL(95,  sys_fchown16)
__SYSCALL(95,  sys_fchown16)
__SYSCALL(96,  sys_getpriority)
__SYSCALL(96,  sys_getpriority)
+0 −5
Original line number Original line Diff line number Diff line
@@ -58,11 +58,6 @@ ENDPROC(compat_sys_fstatfs64_wrapper)
 * in registers or that take 32-bit parameters which require sign
 * in registers or that take 32-bit parameters which require sign
 * extension.
 * extension.
 */
 */
compat_sys_lseek_wrapper:
	sxtw	x1, w1
	b	sys_lseek
ENDPROC(compat_sys_lseek_wrapper)

compat_sys_pread64_wrapper:
compat_sys_pread64_wrapper:
	orr	x3, x4, x5, lsl #32
	orr	x3, x4, x5, lsl #32
	b	sys_pread64
	b	sys_pread64
+2 −2
Original line number Original line Diff line number Diff line
@@ -284,8 +284,8 @@ sys_call_table:
	PTR	compat_sys_old_readdir
	PTR	compat_sys_old_readdir
	PTR	sys_mips_mmap			/* 4090 */
	PTR	sys_mips_mmap			/* 4090 */
	PTR	sys_munmap
	PTR	sys_munmap
	PTR	sys_truncate
	PTR	compat_sys_truncate
	PTR	sys_ftruncate
	PTR	compat_sys_ftruncate
	PTR	sys_fchmod
	PTR	sys_fchmod
	PTR	sys_fchown			/* 4095 */
	PTR	sys_fchown			/* 4095 */
	PTR	sys_getpriority
	PTR	sys_getpriority
+0 −10
Original line number Original line Diff line number Diff line
@@ -79,16 +79,6 @@ asmlinkage long sys32_sendfile64(u32 out_fd, u32 in_fd,
				(loff_t __user *)offset, count);
				(loff_t __user *)offset, count);
}
}



/* lseek() needs a wrapper because 'offset' can be negative, but the top
 * half of the argument has been zeroed by syscall.S.
 */

asmlinkage int sys32_lseek(unsigned int fd, int offset, unsigned int origin)
{
	return sys_lseek(fd, offset, origin);
}

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;
+3 −3
Original line number Original line Diff line number Diff line
@@ -76,7 +76,7 @@
	ENTRY_SAME(socket)
	ENTRY_SAME(socket)
	/* struct stat is MAYBE identical wide and narrow ?? */
	/* struct stat is MAYBE identical wide and narrow ?? */
	ENTRY_COMP(newstat)
	ENTRY_COMP(newstat)
	ENTRY_DIFF(lseek)
	ENTRY_COMP(lseek)
	ENTRY_SAME(getpid)		/* 20 */
	ENTRY_SAME(getpid)		/* 20 */
	/* the 'void * data' parameter may need re-packing in wide */
	/* the 'void * data' parameter may need re-packing in wide */
	ENTRY_COMP(mount)
	ENTRY_COMP(mount)
@@ -165,8 +165,8 @@
	ENTRY_SAME(mmap2)
	ENTRY_SAME(mmap2)
	ENTRY_SAME(mmap)		/* 90 */
	ENTRY_SAME(mmap)		/* 90 */
	ENTRY_SAME(munmap)
	ENTRY_SAME(munmap)
	ENTRY_SAME(truncate)
	ENTRY_COMP(truncate)
	ENTRY_SAME(ftruncate)
	ENTRY_COMP(ftruncate)
	ENTRY_SAME(fchmod)
	ENTRY_SAME(fchmod)
	ENTRY_SAME(fchown)		/* 95 */
	ENTRY_SAME(fchown)		/* 95 */
	ENTRY_SAME(getpriority)
	ENTRY_SAME(getpriority)
Loading