Thread (2 messages) 2 messages, 1 author, 2006-09-17

[PATCH] The o32 fstatat syscall behaves differently on 32 and 64 bit kernels

From: Richard Sandiford <hidden>
Date: 2006-09-17 19:30:55
Subsystem: mips, the rest · Maintainers: Thomas Bogendoerfer, Linus Torvalds

While working on a glibc patch to support the fstatat() functions[1],
I noticed that the o32 implementation behaves differently on 32-bit and
64-bit kernels; the former provides a stat64 while the latter provides
a plain (o32) stat.  I think the former is what's intended, as there is
no separate fstatat64.  It's also what x86 does.

I think this is just a case of a compat too far.  The o32 stat64 is the
same as plain stat on n64, so 64-bit kernels can just use newfstatat.
(n32 already does this, and works correctly as-is.)

Tested with the glibc patch, where it fixes the test I'd written.
Please install if OK.

Richard

[1] I've seen Khem's patch, but I don't think it's right.

Signed-off-by: Richard Sandiford <redacted>
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 2ac0141..288ee4a 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -498,7 +498,7 @@ sys_call_table:
 	PTR	sys_mknodat			/* 4290 */
 	PTR	sys_fchownat
 	PTR	compat_sys_futimesat
-	PTR	compat_sys_newfstatat
+	PTR	sys_newfstatat
 	PTR	sys_unlinkat
 	PTR	sys_renameat			/* 4295 */
 	PTR	sys_linkat
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help