summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Chou <thomas@wytron.com.tw>2009-10-06 05:25:25 +0200
committerDavid S. Miller <davem@davemloft.net>2009-10-07 12:50:15 +0200
commita4d63a943735efa30270ce70716d43323fd40f02 (patch)
treee5b65612eca59bc83ae31c02c4ddf09b0c7e6cc2
parentethoc: use system memory as buffer (diff)
downloadlinux-a4d63a943735efa30270ce70716d43323fd40f02.tar.xz
linux-a4d63a943735efa30270ce70716d43323fd40f02.zip
ethoc: limit the number of buffers to 128
Only 128 buffer descriptors are supported in the core. Limit the number in case we have more memory. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethoc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index 6d82dc646ac0..34d0c69e67f7 100644
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -662,8 +662,8 @@ static int ethoc_open(struct net_device *dev)
if (ret)
return ret;
- /* calculate the number of TX/RX buffers */
- num_bd = (dev->mem_end - dev->mem_start + 1) / ETHOC_BUFSIZ;
+ /* calculate the number of TX/RX buffers, maximum 128 supported */
+ num_bd = min(128, (dev->mem_end - dev->mem_start + 1) / ETHOC_BUFSIZ);
priv->num_tx = max(min_tx, num_bd / 4);
priv->num_rx = num_bd - priv->num_tx;
ethoc_write(priv, TX_BD_NUM, priv->num_tx);