aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/skge.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/skge.c')
-rw-r--r--drivers/net/skge.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 55245dbaecbc..7d8e2ab80604 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -50,6 +50,7 @@
50#define DEFAULT_TX_RING_SIZE 128 50#define DEFAULT_TX_RING_SIZE 128
51#define DEFAULT_RX_RING_SIZE 512 51#define DEFAULT_RX_RING_SIZE 512
52#define MAX_TX_RING_SIZE 1024 52#define MAX_TX_RING_SIZE 1024
53#define TX_LOW_WATER (MAX_SKB_FRAGS + 1)
53#define MAX_RX_RING_SIZE 4096 54#define MAX_RX_RING_SIZE 4096
54#define RX_COPY_THRESHOLD 128 55#define RX_COPY_THRESHOLD 128
55#define RX_BUF_SIZE 1536 56#define RX_BUF_SIZE 1536
@@ -401,7 +402,7 @@ static int skge_set_ring_param(struct net_device *dev,
401 int err; 402 int err;
402 403
403 if (p->rx_pending == 0 || p->rx_pending > MAX_RX_RING_SIZE || 404 if (p->rx_pending == 0 || p->rx_pending > MAX_RX_RING_SIZE ||
404 p->tx_pending < MAX_SKB_FRAGS+1 || p->tx_pending > MAX_TX_RING_SIZE) 405 p->tx_pending < TX_LOW_WATER || p->tx_pending > MAX_TX_RING_SIZE)
405 return -EINVAL; 406 return -EINVAL;
406 407
407 skge->rx_ring.count = p->rx_pending; 408 skge->rx_ring.count = p->rx_pending;
@@ -2394,7 +2395,7 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev)
2394 dev->name, e - ring->start, skb->len); 2395 dev->name, e - ring->start, skb->len);
2395 2396
2396 ring->to_use = e->next; 2397 ring->to_use = e->next;
2397 if (skge_avail(&skge->tx_ring) <= MAX_SKB_FRAGS + 1) { 2398 if (skge_avail(&skge->tx_ring) <= TX_LOW_WATER) {
2398 pr_debug("%s: transmit queue full\n", dev->name); 2399 pr_debug("%s: transmit queue full\n", dev->name);
2399 netif_stop_queue(dev); 2400 netif_stop_queue(dev);
2400 } 2401 }
@@ -2689,7 +2690,7 @@ static void skge_tx_done(struct skge_port *skge)
2689 2690
2690 skge_write8(skge->hw, Q_ADDR(txqaddr[skge->port], Q_CSR), CSR_IRQ_CL_F); 2691 skge_write8(skge->hw, Q_ADDR(txqaddr[skge->port], Q_CSR), CSR_IRQ_CL_F);
2691 2692
2692 if (skge_avail(&skge->tx_ring) > MAX_SKB_FRAGS + 1) 2693 if (skge_avail(&skge->tx_ring) > TX_LOW_WATER)
2693 netif_wake_queue(skge->netdev); 2694 netif_wake_queue(skge->netdev);
2694 2695
2695 spin_unlock(&skge->tx_lock); 2696 spin_unlock(&skge->tx_lock);