tty_driver, wait_until_sent, and types

From: Kumar Gala
Date: Fri May 16 2008 - 11:19:57 EST


I'm getting the following reported back on both a ppc64 and x86_64 box, running 2.6.25:

schedule_timeout: wrong timeout value ffffffffffffffff
Call Trace:
[c0000000558ef3f0] [c000000000010b7c] .show_stack+0x70/0x19c (unreliable)
[c0000000558ef4a0] [c00000000045137c] .schedule_timeout+0x5c/0xe8
[c0000000558ef590] [d0000000005793f0] .espx_wait_until_sent +0x154/0x240 [espx]
[c0000000558ef670] [c0000000002caa30] .tty_wait_until_sent+0x17c/0x1ac
[c0000000558ef750] [c0000000002cadc0] .set_termios+0x360/0x3c0
[c0000000558ef830] [c0000000002cb33c] .tty_mode_ioctl+0x51c/0x8a8
[c0000000558ef910] [c0000000002c6f34] .tty_ioctl+0x1228/0x12b0
[c0000000558efaf0] [c000000000134928] .vfs_ioctl+0xb4/0xec
[c0000000558efb80] [c000000000134df8] .do_vfs_ioctl+0x498/0x4c4
[c0000000558efc30] [c000000000134e94] .sys_ioctl+0x70/0xb4
[c0000000558efce0] [c000000000167594] .do_ioctl32_pointer+0x14/0x2c
[c0000000558efd50] [c00000000016c788] .compat_sys_ioctl+0x3ec/0x470
[c0000000558efe30] [c000000000008748] syscall_exit+0x0/0x40

It seems like the issue has to do with types:

in drivers/char/tty_ioctl.c:

void tty_wait_until_sent(struct tty_struct *tty, long timeout)
tty->ops->wait_until_sent(tty, timeout);

however, from include/linux/tty_driver.h we see:

void (*wait_until_sent)(struct tty_struct *tty, int timeout);

should timeout be a long instead of an int?

- k
--
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/