[BUG] sizeof(struct async_icount) exported to userspace on SH, SH64 and xtensa

From: Russell King
Date: Sat Jan 21 2006 - 13:56:10 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/