Re: [PATCH] ptrdiff_t is not uintptr_t, damnit

From: Al Viro
Date: Sun Aug 19 2007 - 23:41:21 EST


On Sun, Aug 19, 2007 at 08:26:24PM -0700, David Brownell wrote:

> ISTR the warning was the other way around: about "cast from integer
> to pointer of a different size". The __u64 came from userspace and
> the kernel pointer was only 32 bits. Not really truncation, but GCC
> could not know that directly ... ergo the extra non-pointer cast.

And? Cast to integer type with the size equal to that of pointer.
unsigned long is just that on all supported targets.

More interesting question is whether you want an error returned when
pointers are 32bit and value doesn't fit into that...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/