Messages in this thread Patch in this message | | | Date | Fri, 5 Sep 2003 08:24:36 -0700 | From | Greg KH <> | Subject | Re: [OOPS] 2.4.22, USB visor module crashing on HotSync. |
| |
On Fri, Sep 05, 2003 at 01:30:22PM +0200, Ingo Oeser wrote: > Hi Greg, > > there seems to be a problem with the visor module and usb_serial. > > Please look at __serial_close() and usb_disconnect() calling it > in line 1406 vs. line 1408. I would suggest removing 1408 or > folding it into __serial_close(). > > Formal Bug-Reporting follows: > > [1.] One line summary of the problem: > > USB visor module and usb_serial crashing on HotSync in usb_disconnect > > [2.] Full description of the problem/report: > > usb_disconnect calls __serial_close() which sets the tty = NULL > and afterwards trys to set tty->private_data = NULL > which will crash
Nice, someone else reported this yesterday for the ftdi_sio driver.
Can you test the patch below and let me know if this fixes it?
thanks,
greg k-h
--- a/drivers/usb/serial/usbserial.c Sat Aug 30 23:27:18 2003 +++ b/drivers/usb/serial/usbserial.c Thu Sep 4 13:48:45 2003 @@ -556,7 +556,10 @@ else generic_close(port, filp); port->open_count = 0; - port->tty = NULL; + if (port->tty) { + port->tty->driver_data = NULL; + port->tty = NULL; + } } if (port->serial->type->owner) @@ -1401,12 +1404,9 @@ for (i = 0; i < serial->num_ports; ++i) { port = &serial->port[i]; down (&port->sem); - if (port->tty != NULL) { - while (port->open_count > 0) { + if (port->tty != NULL) + while (port->open_count > 0) __serial_close(port, NULL); - } - port->tty->driver_data = NULL; - } up (&port->sem); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |