From: Wen Hsin Chang <whchang@tw.ibm.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, tsbogend@alpha.franken.de
Subject: [PATCH] pcnet32.c: modify RX ring size through module parameter
Date: Mon, 15 May 2006 11:32:14 +0800 [thread overview]
Message-ID: <4467F63E.5060401@tw.ibm.com> (raw)
This patch is created from pcnet32.c v1.32. it will allow users to
specify RX ring size upon module
insertion via module parameter 'rx_log_size'. This is needed in some
cases where too small the rx ring
size will cause RX errors upon remote installation via pcnet32 NIC card.
Signed-off-by: Wen Hsin Chang <whchang@tw.ibm.com>
----------------------------------------------------------------------------------------------------
--- a/drivers/net/pcnet32.c 2006-03-30 09:49:10.000000000 +0800
+++ b/drivers/net/pcnet32.c 2006-05-15 11:14:45.000000000 +0800
@@ -93,6 +93,9 @@ static struct net_device *pcnet32_dev;
static int max_interrupt_work = 2;
static int rx_copybreak = 200;
+/* Module parameter to specify RX ring size at module insertion */
+static int rx_log_size = 0;
+
#define PCNET32_PORT_AUI 0x00
#define PCNET32_PORT_10BT 0x01
#define PCNET32_PORT_GPSI 0x02
@@ -1264,7 +1267,10 @@ pcnet32_probe1(unsigned long ioaddr, int
lp->name = chipname;
lp->shared_irq = shared;
lp->tx_ring_size = TX_RING_SIZE; /* default tx ring size */
- lp->rx_ring_size = RX_RING_SIZE; /* default rx ring size */
+ if (!rx_log_size)
+ lp->rx_ring_size = RX_RING_SIZE; /* default rx ring size */
+ else
+ lp->rx_ring_size = (1 << (rx_log_size));
lp->tx_mod_mask = lp->tx_ring_size - 1;
lp->rx_mod_mask = lp->rx_ring_size - 1;
lp->tx_len_bits = (PCNET32_LOG_TX_BUFFERS << 12);
@@ -2707,6 +2713,11 @@ module_param(tx_start_pt, int, 0);
MODULE_PARM_DESC(tx_start_pt, DRV_NAME " transmit start point (0-3)");
module_param(pcnet32vlb, int, 0);
MODULE_PARM_DESC(pcnet32vlb, DRV_NAME " Vesa local bus (VLB) support
(0/1)");
+
+/* Module parameter to specify RX ring size at module insertion */
+module_param(rx_log_size, int, 0);
+MODULE_PARM_DESC(rx_log_size, DRV_NAME " RX Ring Buffer Size (log_2
#BUF) ");
+
module_param_array(options, int, NULL, 0);
MODULE_PARM_DESC(options, DRV_NAME " initial option setting(s) (0-15)");
module_param_array(full_duplex, int, NULL, 0);
@@ -2731,6 +2742,12 @@ static int __init pcnet32_init_module(vo
if ((tx_start_pt >= 0) && (tx_start_pt <= 3))
tx_start = tx_start_pt;
+
+ /* validating rx_log_size */
+ if ((rx_log_size <= 0) ||
+ (rx_log_size > PCNET32_LOG_MAX_RX_BUFFERS))
+ rx_log_size = 0;
+
/* find the PCI devices */
if (!pci_module_init(&pcnet32_driver))
next reply other threads:[~2006-05-15 3:32 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-15 3:32 Wen Hsin Chang [this message]
2006-05-15 15:54 ` [PATCH] pcnet32.c: modify RX ring size through module parameter Don Fry
2006-05-15 15:58 ` Jon Mason
2006-05-16 3:05 ` Wen Hsin Chang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4467F63E.5060401@tw.ibm.com \
--to=whchang@tw.ibm.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=tsbogend@alpha.franken.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).