lkml.org 
[lkml]   [2008]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: tty: usb-serial krefs - bad magic number for tty struct (188:0)
    On Sat, Oct 18, 2008 at 1:15 PM, Sergio Luis <eeeesti@gmail.com> wrote:
    > Hello,
    >
    > commit 4a90f09b20f4622dcbff1f0e1e6bae1704f8ad8c
    >
    > tty: usb-serial krefs
    >
    > Use kref in the USB serial drivers so that we don't free tty structures
    > from under the URB receive handlers as has historically been the case if
    > you were unlucky. This also gives us a framework for general tty drivers to
    > use tty_port objects and refcount.
    >
    > Contains two err->dev_err changes merged together to fix clashes in the
    > -next tree.
    >
    > Signed-off-by: Alan Cox <alan@redhat.com>
    > Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    >
    > ----
    >
    > causes problems with my usb hsdpa modem. when I try to connect pppd
    > dies and I get these messages on dmesg:
    >
    > [...]
    > usb-storage: device scan complete
    > PPP generic driver version 2.4.2
    > bad magic number for tty struct (188:0) in tty_ioctl
    > bad magic number for tty struct (188:0) in tty_ioctl
    > bad magic number for tty struct (188:0) in tty_release_dev
    > bad magic number for tty struct (188:0) in tty_poll
    > bad magic number for tty struct (188:0) in tty_poll
    > bad magic number for tty struct (188:0) in tty_write
    > bad magic number for tty struct (188:0) in tty_ioctl
    > bad magic number for tty struct (188:0) in tty_ioctl
    > bad magic number for tty struct (188:0) in tty_ioctl
    > bad magic number for tty struct (188:0) in tty_release_dev
    >
    > ---
    >
    > drivers/usb/serial/ChangeLog.history has this:
    >
    > (03/26/2002) gkh
    > removed the port->tty check from port_paranoia_check() due to serial
    > consoles not having a tty device assigned to them.
    >
    > and this seems to be the problem here.
    > something in this commit seems to make it reach the tty_paranoia_check
    > in tty_ioctl() from drivers/char/tty_io.c, but I could be completely
    > wrong.
    >
    > Sergio.
    >
    Hello,

    one of the problems was the tty_kref_put(tty) in
    usb_serial_port_work() [drivers/usb/serial/usb-serial.c], that was
    releasing the tty device. I removed that line and it _almost_ worked.
    well, it worked, but only _once_. If I stopped the daemon and tried to
    start it again, it would give me I/O error and would not open
    /dev/ttyUSB0 anymore.
    I'd suggest to revert that commit and to review it more carefully.
    What do you people think?

    Thanks,
    Sergio.


    \
     
     \ /
      Last update: 2008-10-19 19:43    [W:0.024 / U:29.840 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site