[PATCH] Wire up sys_sync_file_range() on powerpc

David Woodhouse dwmw2 at infradead.org
Sun Jun 17 04:20:44 EST 2007


On Sat, 2007-06-16 at 12:18 +0100, David Woodhouse wrote:
> Every time I build a ppc kernel it bitches at me that
> sys_sync_file_range is unimplemented. Shut it up...
> 
> Signed-off-by: David Woodhouse <dwmw2 at infradead.org>
> 
> ---
> The compat bit is untested although the assembly looks right, when
> compared with 32-bit calls to sys_sync_file_range(). Test kernel
> building now, although I leave for the airport within 24 hours and may
> not get round to actually testing it. 

+asmlinkage long compat_sys_sync_file_range(int fd, int dummy,
+                                  unsigned offset_hi, unsigned offset_lo,
+                                  unsigned nbytes_hi, unsigned nbytes_lo,
+                                  int flags)

Pants. It doesn't work because the 'flags' argument ends up in r9, and
we can only use r3-r8 for syscall arguments. We'll need to do it the
same way as ARM does, with the flags as the second argument.

I _wish_ people would remember that not all the world's an i386 when
they add new syscalls.

And I wish Linus would refuse to merge anything which just says "I wired
it up on i386" without even thinking about 32-on-64 compatibility.
Once we've merged it, it's too late to change the ABI to be sane.

Or is it? Can we ditch sys_sync_file_range now and implement a new
sys_sync_file_range2 with the two 32-bit arguments first?

-- 
dwmw2




More information about the Linuxppc-dev mailing list