On Mon, 2007-06-25 at 14:04 +0200, Segher Boessenkool wrote:
> >> - Some architectures must align 64-bit integers into an aligned
> >>   pair of registers. A slot may be wasted for padding.
> >> - S390 may not have a 64-bit integer in slots 5/6.
> >
> > Uhm, doesn't sys_sync_file_range2 break that?
> >
> > +asmlinkage long compat_sys_sync_file_range2(int fd, unsigned int 
> > flags,
> > +                                  unsigned offset_hi, unsigned 
> > offset_lo,
> > +                                  unsigned nbytes_hi, unsigned 
> > nbytes_lo)
> 
> I don't see any 64-bit integers here.

Of course not. This is the routine which is called from 32-bit code.
The prototype in the 32-bit code is (int, unsigned, loff_t, loff_t).

> > Also, you might want to put something in the syscall file about signed
> > vs unsigned arguments and how they behave with 32-on-64 systems.
> 
> "Both work / unsigned is better / use unsigned whenever
> possible" -- but that's true for all C coding.  Wouldn't
> hurt to repeat it though :-)

Don't we need (int)(-1) to be represented as 0xFFFFFFFFFFFFFFFF in a
register in 64-bit code, while we only get 0xFFFFFFFF passed in from
userspace? Not that this explains why we're doing it even for
filedescriptors.

-- 
dwmw2

-
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to