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

Next file: linux/drivers/usb/serial/keyspan_usa26msg.h
Previous file: linux/drivers/usb/serial/keyspan.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test11/linux/drivers/usb/serial/keyspan_pda.c linux/drivers/usb/serial/keyspan_pda.c
@@ -130,7 +130,7 @@
 	/* wake up other tty processes */
 	wake_up_interruptible( &tty->write_wait );
 	/* For 2.2.16 backport -- wake_up_interruptible( &tty->poll_wait ); */
-
+	MOD_DEC_USE_COUNT;
 }
 
 static void keyspan_pda_request_unthrottle( struct usb_serial *serial )
@@ -149,7 +149,7 @@
 			     NULL,
 			     0,
 			     2*HZ);
-
+	MOD_DEC_USE_COUNT;
 }
 
 
@@ -198,7 +198,9 @@
 			tty = serial->port[0].tty;
 			priv->tx_throttled = 0;
 			/* queue up a wakeup at scheduler time */
-			queue_task( &priv->wakeup_task, &tq_scheduler );
+			MOD_INC_USE_COUNT;
+			if (schedule_task(&priv->wakeup_task) == 0)
+				MOD_DEC_USE_COUNT;
 			break;
 		default:
 			break;
@@ -540,7 +542,9 @@
 
 	if (request_unthrottle) {
 		priv->tx_throttled = 1; /* block writers */
-		queue_task( &priv->unthrottle_task, &tq_scheduler );
+		MOD_INC_USE_COUNT;
+		if (schedule_task(&priv->unthrottle_task) == 0)
+			MOD_DEC_USE_COUNT;
 	}
 
 	spin_unlock_irqrestore (&port->port_lock, flags);
@@ -566,8 +570,9 @@
 	}
 	
 	/* queue up a wakeup at scheduler time */
-	queue_task( &priv->wakeup_task, &tq_scheduler );
-
+	MOD_INC_USE_COUNT;
+	if (schedule_task(&priv->wakeup_task) == 0)
+		MOD_DEC_USE_COUNT;
 }
 
 
@@ -737,11 +742,11 @@
 	if (!priv)
 		return (1); /* error */
 	init_waitqueue_head(&serial->port[0].write_wait);
-	priv->wakeup_task.next = NULL;
+	INIT_LIST_HEAD(&priv->wakeup_task.list);
 	priv->wakeup_task.sync = 0;
 	priv->wakeup_task.routine = (void *)keyspan_pda_wakeup_write;
 	priv->wakeup_task.data = (void *)(&serial->port[0]);
-	priv->unthrottle_task.next = NULL;
+	INIT_LIST_HEAD(&priv->unthrottle_task.list);
 	priv->unthrottle_task.sync = 0;
 	priv->unthrottle_task.routine = (void *)keyspan_pda_request_unthrottle;
 	priv->unthrottle_task.data = (void *)(serial);

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