patch-2.4.21 linux-2.4.21/drivers/net/pcmcia/xirc2ps_cs.c
Next file: linux-2.4.21/drivers/net/pcmcia/xircom_cb.c
Previous file: linux-2.4.21/drivers/net/pcmcia/wavelan_cs.c
Back to the patch index
Back to the overall index
-  Lines: 23
-  Date:
2003-06-13 07:51:35.000000000 -0700
-  Orig file: 
linux-2.4.20/drivers/net/pcmcia/xirc2ps_cs.c
-  Orig date: 
2002-11-28 15:53:14.000000000 -0800
diff -urN linux-2.4.20/drivers/net/pcmcia/xirc2ps_cs.c linux-2.4.21/drivers/net/pcmcia/xirc2ps_cs.c
@@ -1548,7 +1548,6 @@
     DEBUG(1, "do_start_xmit(skb=%p, dev=%p) len=%u\n",
 	  skb, dev, pktlen);
 
-    netif_stop_queue(dev);
 
     /* adjust the packet length to min. required
      * and hope that the buffer is large enough
@@ -1558,8 +1557,14 @@
      * pad this in his buffer with random bytes
      */
     if (pktlen < ETH_ZLEN)
+    {
+        skb = skb_padto(skb, ETH_ZLEN);
+        if(skb == NULL)
+        	return 0;
 	pktlen = ETH_ZLEN;
+    }
 
+    netif_stop_queue(dev);
     SelectPage(0);
     PutWord(XIRCREG0_TRS, (u_short)pktlen+2);
     freespace = GetWord(XIRCREG0_TSO);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)