Re: [PATCH] Generic compat_sys_fallocate

Previous thread: [PATCH RFC] paravirt_ops: refactor struct paravirt_ops into smaller pv_*_ops by Jeremy Fitzhardinge on Friday, September 28, 2007 - 2:10 pm. (10 messages)

Next thread: none
To: <akpm@...>
Cc: <linux-kernel@...>, <linux-arch@...>
Date: Friday, September 28, 2007 - 2:11 pm

Basically everyone is using the same sys32_fallocate. Delete a whole bunch of
archdep code and move the compat wrapper to fs/compat.c

Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
---

NOTE: Patch hunk in scall64-o32.S depends on a patch going in through
Ralf's linux-mips tree.

---
arch/mips/kernel/linux32.c | 7 -------
arch/mips/kernel/scall64-o32.S | 2 +-
arch/powerpc/kernel/sys_ppc32.c | 7 -------
arch/sparc64/kernel/sys_sparc32.c | 6 ------
arch/x86_64/ia32/ia32entry.S | 2 +-
arch/x86_64/ia32/sys_ia32.c | 7 -------
fs/compat.c | 10 ++++++++++
include/linux/compat.h | 2 ++
8 files changed, 14 insertions(+), 29 deletions(-)

diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
index 135d9a5..c37568d 100644
--- a/arch/mips/kernel/linux32.c
+++ b/arch/mips/kernel/linux32.c
@@ -566,13 +566,6 @@ asmlinkage long sys32_fadvise64_64(int fd, int __pad,
flags);
}

-asmlinkage long sys32_fallocate(int fd, int mode, unsigned offset_a2,
- unsigned offset_a3, unsigned len_a4, unsigned len_a5)
-{
- return sys_fallocate(fd, mode, merge_64(offset_a2, offset_a3),
- merge_64(len_a4, len_a5));
-}
-
save_static_function(sys32_clone);
static int noinline __used
_sys32_clone(nabi_no_regargs struct pt_regs regs)
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index dd68afc..bb724cc 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -525,5 +525,5 @@ sys_call_table:
PTR compat_sys_signalfd
PTR compat_sys_timerfd
PTR sys_eventfd
- PTR sys32_fallocate /* 4320 */
+ PTR compat_sys_fallocate /* 4320 */
.size sys_call_table,.-sys_call_table
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c
index bd85b5f..b42cbf1 100644
--- a/arch/powerpc/kernel/sys_ppc32.c
+++ b/arch/powerpc/kernel/sys_ppc32.c
@@ -773,13 +773,6 @@ asmlinkage int compat_sys_truncate...

To: Kyle McMartin <kyle@...>
Cc: <akpm@...>, <linux-kernel@...>, <linux-arch@...>
Date: Saturday, September 29, 2007 - 1:06 am

These are not identical... the least and most significant parts seem to get
passed in a different way on little and big endian machines.
Maybe it would be worth to have something like compat_merge_64() which does
the right thing?
-

To: Heiko Carstens <heiko.carstens@...>
Cc: <akpm@...>, <linux-kernel@...>, <linux-arch@...>
Date: Friday, September 28, 2007 - 3:36 pm

yeah, that's what i've just done.

cheers,
Kyle
-

Previous thread: [PATCH RFC] paravirt_ops: refactor struct paravirt_ops into smaller pv_*_ops by Jeremy Fitzhardinge on Friday, September 28, 2007 - 2:10 pm. (10 messages)

Next thread: none