patch-2.3.44 linux/drivers/net/irda/irtty.c

Next file: linux/drivers/net/irda/nsc-ircc.c
Previous file: linux/drivers/net/irda/irport.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.43/linux/drivers/net/irda/irtty.c linux/drivers/net/irda/irtty.c
@@ -615,11 +615,9 @@
 	ASSERT(self->netdev != NULL, return -1;);
 
 	/* Finished changing speed, so we are not busy any longer */
-	self->netdev->tbusy = 0;
-
 	/* Signal network layer so it can try to send the frame */
-	mark_bh(NET_BH);
-
+	netif_wake_queue(self->netdev);
+	
 	return 0;
 }
 
@@ -639,9 +637,8 @@
 	ASSERT(self != NULL, return 0;);
 
 	/* Lock transmit buffer */
-	if (irda_lock((void *) &dev->tbusy) == FALSE)
-		return -EBUSY;
-
+	netif_stop_queue(dev);
+	
 	/* Check if we need to change the speed */
 	if ((speed = irda_get_speed(skb)) != self->io.speed)
 		self->new_speed = speed;
@@ -727,10 +724,8 @@
 					  NULL, (void *) self->new_speed);
 			self->new_speed = 0;
 		} else {
-			self->netdev->tbusy = 0; /* Unlock */
-		
 			/* Tell network layer that we want more frames */
-			mark_bh(NET_BH);
+			netif_wake_queue(self->netdev);
 		}
 	}
 }
@@ -899,10 +894,8 @@
 	IRDA_DEBUG(0, __FUNCTION__ "()\n");
 	
 	/* Ready to play! */
-	dev->tbusy = 0;
-	dev->interrupt = 0;
-	dev->start = 1;
-
+	netif_start_queue(dev);
+	
 	/* Make sure we can receive more data */
 	irtty_stop_receiver(self, FALSE);
 
@@ -928,9 +921,8 @@
 	irtty_stop_receiver(self, TRUE);
 
 	/* Stop device */
-	dev->tbusy = 1;
-	dev->start = 0;
-
+	netif_stop_queue(dev);
+	
 	/* Stop and remove instance of IrLAP */
 	if (self->irlap)
 		irlap_close(self->irlap);

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