Christoph Hellwig <hch@xxxxxxxxxxxxx> writes: > The problem is that as you indeed pointed out the ABI is that an int > needs to be passed. The _IOR/_IOW generate a ioctl number based on > a few inputs including the type of the argument, which is just > passed to sizeof. So the supposedly self-documenting ioctl defintions > disagree with the actual ABI. > > There's nothing that can be fixed in the kernel except for better > documenting the actual ABI, and why the ioctl defintion is very misleading > in this case. > > The userspace programs that were mislead by this will need to fixed. So we haven't delved deeply yet, but here's a presumably little-endian, 64-bit system where using an int with FS_IOC_GETFLAGS appears to corrupt the stack: https://groups.google.com/d/msg/bup-list/y4CW6Ib7XUk/sCy7AUHhiKYJ and here's the relevant call: https://github.com/bup/bup/blob/0e0b5324699342601ce1b9a97c0a2e1faf6fe7ff/lib/bup/_helpers.c#L830 -- Rob Browning rlb @defaultvalue.org and @debian.org GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html