Re: [PATCH] USB: serial: Fix read regression in 2.6.31

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Sep 27, 2009 at 01:05:55PM +0100, Alan Cox wrote:
> > This case could be handled in the drivers' unthrottle() by checking the
> > ASYNC_CLOSING before resubmitting (or, in the ftdi case, adding to the
> > work queue).

> > Apart from this issue, poisoning / unpoisoning the urb on close and 
> > always trying to resubmit in the completion handler seems to solve the
> > problems at hand (for ftdi at least).

> What backtrace do you get from the WARN_ON when that occurs. I'm trying
> to work out how it happens in the first place because really it would be
> better if it simply didn't happen at all.

drivers/usb/serial/usb-serial.c: serial_close - port 0
drivers/usb/serial/usb-serial.c: serial_chars_in_buffer = port 0
drivers/usb/serial/ftdi_sio.c: ftdi_chars_in_buffer - port 0
drivers/usb/serial/ftdi_sio.c: ftdi_close
drivers/usb/serial/usb-serial.c: serial_unthrottle - port 0
------------[ cut here ]------------
WARNING: at drivers/usb/serial/usb-serial.c:441
serial_unthrottle+0x77/0x80 [usbserial]()
Hardware name: Vostro 1520
Modules linked in: ftdi_sio usbserial iwlagn iwlcore led_class [last
unloaded: usbserial]
Pid: 12297, comm: main Tainted: G        W  2.6.31-gkh-1 #35
Call Trace:
[<c133c1cf>] ? printk+0x18/0x21
[<c103071d>] warn_slowpath_common+0x6d/0xa0 
[<f90a1317>] ? serial_unthrottle+0x77/0x80 [usbserial]
[<f90a1317>] ? serial_unthrottle+0x77/0x80 [usbserial]
[<c1030765>] warn_slowpath_null+0x15/0x20
[<f90a1317>] serial_unthrottle+0x77/0x80 [usbserial]
[<c1184928>] tty_unthrottle+0x38/0x50
[<c118304b>] reset_buffer_flags+0xbb/0xe0
[<c1183086>] n_tty_flush_buffer+0x16/0x80
[<c1186437>] tty_ldisc_flush+0x27/0x40
[<c1186d0b>] tty_port_close_end+0x1b/0xe0
[<f90a1772>] serial_close+0x62/0xb0 [usbserial]
[<c1180a29>] tty_release_dev+0x109/0x500
[<c105505b>] ? trace_hardirqs_on+0xb/0x10
[<c1053eeb>] ? trace_hardirqs_off+0xb/0x10
[<c1180e32>] tty_release+0x12/0x20
[<c10930a1>] __fput+0xf1/0x1f0 
[<c10931b5>] fput+0x15/0x20
[<c1090047>] filp_close+0x47/0x70
[<c103251e>] put_files_struct+0x9e/0xd0
[<c1032592>] exit_files+0x42/0x50
[<c1033f23>] do_exit+0x603/0x670
[<c103c40d>] ? dequeue_signal+0x2d/0x180
[<c133f382>] ? _spin_unlock_irq+0x22/0x50
[<c1033fc9>] do_group_exit+0x39/0xa0
[<c105505b>] ? trace_hardirqs_on+0xb/0x10
[<c103d6eb>] get_signal_to_deliver+0x28b/0x470
[<c105505b>] ? trace_hardirqs_on+0xb/0x10
[<c133f3e9>] ? _spin_unlock_irqrestore+0x39/0x70
[<c10020fe>] do_notify_resume+0x9e/0x8a0
[<c1185ced>] ? put_ldisc+0x3d/0xb0
[<c105505b>] ? trace_hardirqs_on+0xb/0x10
[<c1185dd8>] ? tty_ldisc_deref+0x8/0x10
[<c117e62d>] ? tty_read+0x8d/0xc0
[<c11828b0>] ? n_tty_read+0x0/0x6e0
[<c1092737>] ? vfs_read+0x97/0x160
[<c117e5a0>] ? tty_read+0x0/0xc0
[<c10928bd>] ? sys_read+0x3d/0x70
[<c100302a>] work_notifysig+0x13/0x19
---[ end trace ed4099568b286f28 ]---

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux