On Monday 20 August 2012 11:32:48 Bjørn Mork wrote:
> Hello,
>
> I just noticed that /dev/ttyUSBx devices are not destroyed and released
> on USB device disconnect if some process keeps the file open, and
Well, we have to return some error code. So the device cannot just go away.
> reading from the file does not return an error - it successfully reads 0
> bytes instead.
And indeed the hangup redirects the read method:
static ssize_t hung_up_tty_read(struct file *file, char __user *buf,
size_t count, loff_t *ppos)
{
return 0;
}
If you got -EIO in older kernels, this point to the ordinary tty_read
static ssize_t tty_read(struct file *file, char __user *buf, size_t count,
loff_t *ppos)
{
int i;
struct inode *inode = file->f_path.dentry->d_inode;
struct tty_struct *tty = file_tty(file);
struct tty_ldisc *ld;
if (tty_paranoia_check(tty, inode, "tty_read"))
return -EIO;
if (!tty || (test_bit(TTY_IO_ERROR, &tty->flags)))
return -EIO;
> This affects my gpsd usage, so I believe it must be a recent regression
> or I would have noticed before.
It would probably be best to bisect this.
Regards
Oliver
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html