From: "Kurtis D. Rader" <kdrader@us.ibm.com>

http://bugme.osdl.org/show_bug.cgi?id=1365

The digi_acceleport.c USB serial driver has a bogus "address of" operator
that results in BUGs.

The problem is that digi_wakeup_write_lock() takes a pointer to a struct
usb_serial_port.  However, what gets passed is a pointer to a pointer to a
struct usb_serial_port.



 drivers/usb/serial/digi_acceleport.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN drivers/usb/serial/digi_acceleport.c~digi_accelport-oops-fix drivers/usb/serial/digi_acceleport.c
--- 25/drivers/usb/serial/digi_acceleport.c~digi_accelport-oops-fix	2003-10-16 00:26:33.000000000 -0700
+++ 25-akpm/drivers/usb/serial/digi_acceleport.c	2003-10-16 00:26:33.000000000 -0700
@@ -1728,8 +1728,8 @@ dbg( "digi_startup: TOP" );
 		init_waitqueue_head( &priv->dp_flush_wait );
 		priv->dp_in_close = 0;
 		init_waitqueue_head( &priv->dp_close_wait );
-		INIT_WORK(&priv->dp_wakeup_work, (void *)digi_wakeup_write_lock,
-				(void *)(&serial->port[i]));
+		INIT_WORK(&priv->dp_wakeup_work,
+				digi_wakeup_write_lock, serial->port[i]);
 
 		/* initialize write wait queue for this port */
 		init_waitqueue_head( &serial->port[i]->write_wait );

_