From: Con Kolivas <kernel@kolivas.org>
To: netdev@oss.sgi.com
Cc: linux kernel mailing list <linux-kernel@vger.kernel.org>,
davem@redhat.com
Subject: [PATCH] netconsole support for b44
Date: Tue, 12 Oct 2004 21:39:23 +1000 [thread overview]
Message-ID: <416BC26B.6090603@kolivas.org> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 522 bytes --]
This patch adds poll support to the b44 driver to allow netconsole
support. Style lifted straight from 8139too.c
here is the dmesg output with it in place:
netconsole: device eth0 not up yet, forcing it
netconsole: carrier detect appears flaky, waiting 10 seconds
b44: eth0: Link is down.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is on for TX and on for RX.
netconsole: network logging started
output confirmed by netcat on other system.
Signed-off-by: Con Kolivas <kernel@kolivas.org>
[-- Attachment #1.2: b44poll.diff --]
[-- Type: text/x-patch, Size: 1490 bytes --]
Index: linux-2.6.9-rc4-ck1/drivers/net/b44.c
===================================================================
--- linux-2.6.9-rc4-ck1.orig/drivers/net/b44.c 2004-10-11 16:15:59.000000000 +1000
+++ linux-2.6.9-rc4-ck1/drivers/net/b44.c 2004-10-12 21:18:39.492813689 +1000
@@ -97,6 +97,10 @@ MODULE_DEVICE_TABLE(pci, b44_pci_tbl);
static void b44_halt(struct b44 *);
static void b44_init_rings(struct b44 *);
static void b44_init_hw(struct b44 *);
+static int b44_poll(struct net_device *dev, int *budget);
+#ifdef CONFIG_NET_POLL_CONTROLLER
+static void b44_poll_controller(struct net_device *dev);
+#endif
static inline unsigned long br32(const struct b44 *bp, unsigned long reg)
{
@@ -1297,6 +1301,19 @@ err_out_free:
}
#endif
+#ifdef CONFIG_NET_POLL_CONTROLLER
+/*
+ * Polling receive - used by netconsole and other diagnostic tools
+ * to allow network i/o with interrupts disabled.
+ */
+static void b44_poll_controller(struct net_device *dev)
+{
+ disable_irq(dev->irq);
+ b44_interrupt (dev->irq, dev, NULL);
+ enable_irq(dev->irq);
+}
+#endif
+
static int b44_close(struct net_device *dev)
{
struct b44 *bp = netdev_priv(dev);
@@ -1793,6 +1810,9 @@ static int __devinit b44_init_one(struct
dev->poll = b44_poll;
dev->weight = 64;
dev->watchdog_timeo = B44_TX_TIMEOUT;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ dev->poll_controller = b44_poll_controller;
+#endif
dev->change_mtu = b44_change_mtu;
dev->irq = pdev->irq;
SET_ETHTOOL_OPS(dev, &b44_ethtool_ops);
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]
next reply other threads:[~2004-10-12 11:42 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-12 11:39 Con Kolivas [this message]
2004-10-12 18:09 ` [PATCH] netconsole support for b44 Matt Mackall
2004-10-12 21:48 ` Con Kolivas
2004-10-12 21:57 ` Matt Mackall
2004-10-12 23:26 ` [PATCH]b44poll - whitespace Con Kolivas
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=416BC26B.6090603@kolivas.org \
--to=kernel@kolivas.org \
--cc=davem@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@oss.sgi.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.