public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [BUG] sizeof(struct async_icount) exported to userspace on SH, SH64 and xtensa
@ 2006-01-21 18:57 Russell King
  2006-02-02 10:27 ` Russell King
  0 siblings, 1 reply; 3+ messages in thread
From: Russell King @ 2006-01-21 18:57 UTC (permalink / raw)
  To: Linux Kernel List; +Cc: chris, lethal

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-02-02 11:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-21 18:57 [BUG] sizeof(struct async_icount) exported to userspace on SH, SH64 and xtensa Russell King
2006-02-02 10:27 ` Russell King
2006-02-02 11:22   ` Paul Mundt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox