public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [OOPS] 2.4.22, USB visor module crashing on HotSync.
@ 2003-09-05 15:23 Greg KH
  0 siblings, 0 replies; 3+ messages in thread
From: Greg KH @ 2003-09-05 15:23 UTC (permalink / raw)
  To: Ingo Oeser; +Cc: linux-kernel

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);
 		}
 

^ permalink raw reply	[flat|nested] 3+ messages in thread
* Re: [OOPS] 2.4.22, USB visor module crashing on HotSync.
@ 2003-09-05 15:24 Greg KH
  2003-09-24  9:05 ` Ingo Oeser
  0 siblings, 1 reply; 3+ messages in thread
From: Greg KH @ 2003-09-05 15:24 UTC (permalink / raw)
  To: Ingo Oeser; +Cc: linux-kernel

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);
 		}
 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-09-24  9:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-05 15:23 [OOPS] 2.4.22, USB visor module crashing on HotSync Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2003-09-05 15:24 Greg KH
2003-09-24  9:05 ` Ingo Oeser

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox