瀏覽代碼

[MIPS] Fix some system calls with long long arguments

* O32 fadvise64() pass long long arguments by register pairs.  Add
  sys32 version for 64 bit kernel.
* N32 readahead() can pass a long long argument by one register.  No
  need to use sys32_readahead.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Atsushi Nemoto 18 年之前
父節點
當前提交
8676d2e024
共有 3 個文件被更改,包括 12 次插入2 次删除
  1. 10 0
      arch/mips/kernel/linux32.c
  2. 1 1
      arch/mips/kernel/scall64-n32.S
  3. 1 1
      arch/mips/kernel/scall64-o32.S

+ 10 - 0
arch/mips/kernel/linux32.c

@@ -556,6 +556,16 @@ asmlinkage long sys32_sync_file_range(int fd, int __pad,
 			flags);
 			flags);
 }
 }
 
 
+asmlinkage long sys32_fadvise64_64(int fd, int __pad,
+	unsigned long a2, unsigned long a3,
+	unsigned long a4, unsigned long a5,
+	int flags)
+{
+	return sys_fadvise64_64(fd,
+			merge_64(a2, a3), merge_64(a4, a5),
+			flags);
+}
+
 save_static_function(sys32_clone);
 save_static_function(sys32_clone);
 __attribute_used__ noinline static int
 __attribute_used__ noinline static int
 _sys32_clone(nabi_no_regargs struct pt_regs regs)
 _sys32_clone(nabi_no_regargs struct pt_regs regs)

+ 1 - 1
arch/mips/kernel/scall64-n32.S

@@ -299,7 +299,7 @@ EXPORT(sysn32_call_table)
 	PTR	sys_ni_syscall			/* res. for afs_syscall */
 	PTR	sys_ni_syscall			/* res. for afs_syscall */
 	PTR	sys_ni_syscall			/* res. for security */
 	PTR	sys_ni_syscall			/* res. for security */
 	PTR	sys_gettid
 	PTR	sys_gettid
-	PTR	sys32_readahead
+	PTR	sys_readahead
 	PTR	sys_setxattr			/* 6180 */
 	PTR	sys_setxattr			/* 6180 */
 	PTR	sys_lsetxattr
 	PTR	sys_lsetxattr
 	PTR	sys_fsetxattr
 	PTR	sys_fsetxattr

+ 1 - 1
arch/mips/kernel/scall64-o32.S

@@ -459,7 +459,7 @@ sys_call_table:
 	PTR	sys_remap_file_pages
 	PTR	sys_remap_file_pages
 	PTR	sys_set_tid_address
 	PTR	sys_set_tid_address
 	PTR	sys_restart_syscall
 	PTR	sys_restart_syscall
-	PTR	sys_fadvise64_64
+	PTR	sys32_fadvise64_64
 	PTR	compat_sys_statfs64		/* 4255 */
 	PTR	compat_sys_statfs64		/* 4255 */
 	PTR	compat_sys_fstatfs64
 	PTR	compat_sys_fstatfs64
 	PTR	compat_sys_timer_create
 	PTR	compat_sys_timer_create