Hi, The compatible ioctl is missing for submitting URB from 32 bit application on a x86_64 system. For people who need to refresh their mind, please read the big comment after do_usbdevfs_bulk in fs/compat_ioctl.c VMware is a big user of the usbdevfs, we translate guest USB IO to usbdevfs, by submitting URB. On the x86_64 system, we need those compatible ioctl for submitting URBs. For now we make a hack to submit it through the vmmon driver. But that is very ugly. I do want this problem get fixed in the linux kernel eventually. I have been toying with two different ways to solve it. It seems that it is unavoidable to get hands dirty in the usbdevfs internals. The first one is just educate the usbdevfs to know about the 32 bit URB ioctls. So it don't need to keep around a bounce buffer. The second idea is have a bounce buffer, and let the usbdevfs internals to know about his bounce buffer and free it when the async structure destroyed (except for reap). I attach a patch just implement the first approach. Any comment are welcome. Chris