patch-2.4.0-test12 linux/drivers/usb/serial/digi_acceleport.c

Next file: linux/drivers/usb/serial/empeg.c
Previous file: linux/drivers/usb/serial/Makefile
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test11/linux/drivers/usb/serial/digi_acceleport.c linux/drivers/usb/serial/digi_acceleport.c
@@ -601,7 +601,7 @@
 	spin_lock_irqsave( &priv->dp_port_lock, flags );
 	digi_wakeup_write( port );
 	spin_unlock_irqrestore( &priv->dp_port_lock, flags );
-
+	MOD_DEC_USE_COUNT;
 }
 
 static void digi_wakeup_write( struct usb_serial_port *port )
@@ -1409,7 +1409,9 @@
 
 	/* also queue up a wakeup at scheduler time, in case we */
 	/* lost the race in write_chan(). */
-	queue_task( &priv->dp_wakeup_task, &tq_scheduler );
+	MOD_INC_USE_COUNT;
+	if (schedule_task(&priv->dp_wakeup_task) == 0)
+		MOD_DEC_USE_COUNT;
 
 	spin_unlock( &priv->dp_port_lock );
 
@@ -1736,7 +1738,7 @@
 		init_waitqueue_head( &priv->dp_flush_wait );
 		priv->dp_in_close = 0;
 		init_waitqueue_head( &priv->dp_close_wait );
-		priv->dp_wakeup_task.next = NULL;
+		INIT_LIST_HEAD(&priv->dp_wakeup_task.list);
 		priv->dp_wakeup_task.sync = 0;
 		priv->dp_wakeup_task.routine = (void *)digi_wakeup_write_lock;
 		priv->dp_wakeup_task.data = (void *)(&serial->port[i]);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)