Messages in this thread | | | Date | Sat, 21 Jan 2006 18:57:12 +0000 | From | Russell King <> | Subject | [BUG] sizeof(struct async_icount) exported to userspace on SH, SH64 and xtensa |
| |
I've just been looking through the remaining cruft in the serial drivers, and have come across this silly thing:
TIOCGICOUNT exports a structure to userspace called struct serial_icounter_struct.
However, sh, sh64 and xtensa do this:
include/asm-sh/ioctls.h:#define TIOCGICOUNT _IOR('T', 93, struct async_icount) /* 0x545D */ /* read serial port inline interrupt counts */ include/asm-sh64/ioctls.h:#define TIOCGICOUNT 0x802c545d /* _IOR('T', 93, struct async_icount) 0x545D */ /* read serial port inline interrupt counts */ include/asm-xtensa/ioctls.h:#define TIOCGICOUNT _IOR('T', 93, struct async_icount) /* read serial port inline interrupt counts */
What's more is that no driver actually exports async_icount, and async_icount is a kernel internal structure which does _not_ form part of the public API, and modifications to this will result in unexpected breakage on these platforms.
100% for trying to clean up the tty ioctl definitions. 0% for using the wrong structures. As such, these _require_ fixing.
Please document that your TIOCGICOUNT is broken and remove the dependence on the async_icount structure. Thanks.
-- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |