patch-2.3.29 linux/drivers/net/irda/toshoboe.c

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

diff -u --recursive --new-file v2.3.28/linux/drivers/net/irda/toshoboe.c linux/drivers/net/irda/toshoboe.c
@@ -304,7 +304,7 @@
 
   /* Check if we need to change the speed */
   if ((speed = irda_get_speed(skb)) != self->io.speed)
-	   toshoboe_setbaud (self, speed);
+	  self->new_speed = speed;
 
   if (self->stopped) {
 	  dev_kfree_skb(skb);
@@ -405,10 +405,14 @@
 
       self->stats.tx_packets++;
 
-      /* idev->media_busy = FALSE; */
-      self->netdev->tbusy = 0;
-
-      mark_bh (NET_BH);
+      if (self->new_speed) {
+	      toshoboe_setbaud(self, self->new_speed);
+	      self->new_speed = 0;
+      }
+      self->netdev->tbusy = 0; /* Unlock */
+      
+      /* Tell network layer that we want more frames */
+      mark_bh(NET_BH);
     }
 
   if (irqstat & OBOE_ISR_RXDONE)

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