On Friday 23 April 2010, Avi Kivity wrote: > On 04/23/2010 03:27 PM, Arnd Bergmann wrote: > > > >> Using a 64-bit integer avoids the problem (though perhaps not sufficient > >> for s390, Arnd?) > >> > > When there is only a __u64 for the address, it will work on s390 as well, > > gcc is smart enough to clear the upper bit on a cast from long to pointer. > > > > Ah, much more convenient than compat_ioctl. I assume it part of the > ABI, not a gccism? I don't think it's part of the ABI, but it's required to guarantee that code like this works: int compare_pointer(void *a, void *b) { unsigned long ai = (unsigned long)a, bi = (unsigned long)b; return ai == bi; /* true if a and b point to the same object */ } We certainly rely on this already. Arnd -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html