Re: ioctl get_info: Bad address
Brought to you by:
aeb,
bencollins
From: Clemens L. <cl...@la...> - 2011-08-09 15:57:27
|
I wrote: > get_info.bus_reset = (u64)&bus_reset; Uh-oh. 32-bit gcc 4.4.4 says "cast from pointer to integer of different size" and sign-extends the value. firewire-cdev.c's u64_to_uptr() differs from compat_ptr() in that the latter correctly masks the source pointer to 32 bits. This is definitely a bug in async-test.c, but shouldn't the kernel use compat_ptr() for all pointers when is_compat_task()? u64_to_uptr() will definitely be wrong on s390 and tile (not that we care about those). Regards, Clemens |