
From: Roger Luethi <rl@hellgate.ch>

generic_startup in visor.c was not called for some hardware, resulting in
attempts to access memory that had never been allocated, which in turn
caused the problem several people reported with recent (2.6.10ish) kernels.

Signed-off-by: Roger Luethi <rl@hellgate.ch>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/usb/serial/visor.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN drivers/usb/serial/visor.c~visor-always-do-generic_startup drivers/usb/serial/visor.c
--- 25/drivers/usb/serial/visor.c~visor-always-do-generic_startup	2004-11-16 23:30:34.172051688 -0800
+++ 25-akpm/drivers/usb/serial/visor.c	2004-11-16 23:30:34.176051080 -0800
@@ -930,7 +930,7 @@ static int treo_attach (struct usb_seria
 	if (!((serial->dev->descriptor.idVendor == HANDSPRING_VENDOR_ID) ||
 	      (serial->dev->descriptor.idVendor == KYOCERA_VENDOR_ID)) ||
 	    (serial->num_interrupt_in == 0))
-		return 0;
+		goto generic_startup;
 
 	dbg("%s", __FUNCTION__);
 
@@ -957,6 +957,7 @@ static int treo_attach (struct usb_seria
 	COPY_PORT(serial->port[1], swap_port);
 	kfree(swap_port);
 
+generic_startup:
 	return generic_startup(serial);
 }
 
_
