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

Commit 567bd980 authored by Russell King's avatar Russell King Committed by Russell King
Browse files

[ARM] Fix sys_sendto and sys_recvfrom 6-arg syscalls



Rather than providing more wrappers for 6-arg syscalls, arrange for
them to be supported as standard.  This just means that we always
store the 6th argument on the stack, rather than in the wrappers.

This means we eliminate the wrappers for:
* sys_futex
* sys_arm_fadvise64_64
* sys_mbind
* sys_ipc

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 48ea7530
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@ __syscall_start:
		.long	sys_wait4
/* 115 */	.long	sys_swapoff
		.long	sys_sysinfo
		.long	sys_ipc_wrapper
		.long	sys_ipc
		.long	sys_fsync
		.long	sys_sigreturn_wrapper
/* 120 */	.long	sys_clone_wrapper
@@ -254,7 +254,7 @@ __syscall_start:
		.long	sys_fremovexattr
		.long	sys_tkill
		.long	sys_sendfile64
/* 240 */	.long	sys_futex_wrapper
/* 240 */	.long	sys_futex
		.long	sys_sched_setaffinity
		.long	sys_sched_getaffinity
		.long	sys_io_setup
@@ -284,7 +284,7 @@ __syscall_start:
		.long	sys_fstatfs64
		.long	sys_tgkill
		.long	sys_utimes
/* 270 */	.long	sys_arm_fadvise64_64_wrapper
/* 270 */	.long	sys_arm_fadvise64_64
		.long	sys_pciconfig_iobase
		.long	sys_pciconfig_read
		.long	sys_pciconfig_write
@@ -333,7 +333,7 @@ __syscall_start:
		.long	sys_inotify_init
		.long	sys_inotify_add_watch
		.long	sys_inotify_rm_watch
		.long	sys_mbind_wrapper
		.long	sys_mbind
/* 320 */	.long	sys_get_mempolicy
		.long	sys_set_mempolicy
__syscall_end:
+2 −18
Original line number Diff line number Diff line
@@ -145,7 +145,7 @@ ENTRY(vector_swi)
#endif
	enable_irq

	str	r4, [sp, #-S_OFF]!		@ push fifth arg
	stmdb	sp!, {r4, r5}			@ push fifth and sixth args

	get_thread_info tsk
	ldr	ip, [tsk, #TI_FLAGS]		@ check for syscall tracing
@@ -204,7 +204,7 @@ ENTRY(sys_call_table)
 * Special system call wrappers
 */
@ r0 = syscall number
@ r5 = syscall table
@ r8 = syscall table
		.type	sys_syscall, #function
sys_syscall:
		eor	scno, r0, #__NR_SYSCALL_BASE
@@ -255,22 +255,6 @@ sys_sigaltstack_wrapper:
		ldr	r2, [sp, #S_OFF + S_SP]
		b	do_sigaltstack

sys_futex_wrapper:
		str	r5, [sp, #4]		@ push sixth arg
		b	sys_futex

sys_arm_fadvise64_64_wrapper:
		str	r5, [sp, #4]		@ push r5 to stack
		b	sys_arm_fadvise64_64

sys_mbind_wrapper:
		str	r5, [sp, #4]
		b	sys_mbind

sys_ipc_wrapper:
		str	r5, [sp, #4]		@ push sixth arg
		b	sys_ipc

/*
 * Note: off_4k (r5) is always units of 4K.  If we can't do the requested
 * offset, we return EINVAL.