patch-2.3.99-pre2 linux/drivers/net/pcnet32.c

Next file: linux/drivers/net/ppp_async.c
Previous file: linux/drivers/net/net_init.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre1/linux/drivers/net/pcnet32.c linux/drivers/net/pcnet32.c
@@ -929,7 +929,7 @@
 	lp->tx_ring[i].status = 0;
     }
 
-    lp->init_block.tlen_rlen = TX_RING_LEN_BITS | RX_RING_LEN_BITS;
+    lp->init_block.tlen_rlen = le16_to_cpu(TX_RING_LEN_BITS | RX_RING_LEN_BITS);
     for (i = 0; i < 6; i++)
 	lp->init_block.phys_addr[i] = dev->dev_addr[i];
     lp->init_block.rx_ring = (u32)le32_to_cpu(virt_to_bus(lp->rx_ring));
@@ -1050,8 +1050,10 @@
 
     if (lp->tx_ring[(entry+1) & TX_RING_MOD_MASK].base == 0)
 	netif_start_queue(dev);
-    else
+    else {
 	lp->tx_full = 1;
+	netif_stop_queue(dev);
+    }
     spin_unlock_irqrestore(&lp->lock, flags);
     return 0;
 }

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