From: Andries.Brouwer@cwi.nl
To: jgarzik@pobox.com
Cc: ALESSANDRO.SUARDI@oracle.com, efault@gmx.de,
linux-kernel@vger.kernel.org, mzyngier@freesurf.fr
Subject: 3c509.c
Date: Tue, 21 Jan 2003 21:45:28 +0100 (MET) [thread overview]
Message-ID: <UTC200301212045.h0LKjSp11532.aeb@smtp.cwi.nl> (raw)
Last Saturday or so I mentioned an Oops in __find_symbol in 2.5.59
and two people sent me Kai's patch. Thanks!
This evening the next attempt. Under 2.5.58 my ethernet cards
still work, under 2.5.59 eth0, a 3c509, fails.
(1) Started to read the source and come across
3c509.c:
----------
/* Huh ? Can someone explain what is this for ? */
if (dev->mem_end == 0x3c509 /* Magic key */ && ...
----------
An answer to that question is:
See Documentation/networking/3c509.txt
(under "Special Driver Features").
(2) Reading el3_probe() one sees
3c509.c:
----------
static int __init el3_probe(int card_idx) {
struct net_device *dev;
#ifdef CONFIG_MCA
if( MCA_bus ) {
for() {
if(dev && ((dev->irq >= 1 && ...
}
}
#endif
----------
Funny. Since dev has a random value we must conclude that
this code is broken. Also, MCA_NOTFOUND is undefined.
Things improve with
#include <linux/mca-legacy.h>
at the start, and an assignment to dev (or this code involving
dev ripped out). Something like
--- .../linux-2.5.59/linux/drivers/net/3c509.c Sat Jan 18 23:54:39 2003
+++ ./3c509.c Tue Jan 21 20:37:10 2003
@@ -88,6 +88,7 @@
#include <linux/ethtool.h>
#include <linux/device.h>
#include <linux/eisa.h>
+#include <linux/mca-legacy.h>
#include <asm/uaccess.h>
#include <asm/bitops.h>
@@ -398,14 +399,14 @@
ioaddr = ((short)((pos4&0xfc)|0x02)) << 8;
irq = pos5 & 0x0f;
-
+#if 0
/* probing for a card at a particular IO/IRQ */
if(dev && ((dev->irq >= 1 && dev->irq != irq) ||
(dev->base_addr >= 1 && dev->base_addr != ioaddr))) {
slot++; /* probing next slot */
continue;
}
-
+#endif
printk("3c509: found %s at slot %d\n",
el3_mca_adapters[j].name, slot + 1 );
(3) In cases such as these, where ethernet cards get different names
than they had under the previous kernel, it is neccessary to find
out which name belongs to which card. An easy approach is
dmesg | grep eth
For me this yields eth0, eth2 and eth3 but not eth1, a 3c900 Boomerang.
Indeed, the boot message only says about this animal:
<6>PCI: Found IRQ 11 for device 00:0d.0
<6>PCI: Sharing IRQ 11 with 00:07.2
<6>PCI: Sharing IRQ 11 with 00:09.0
<6>PCI: Sharing IRQ 11 with 00:09.1
<4>3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
<6>00:0d.0: 3Com PCI 3c900 Boomerang 10Mbps Combo at 0xb400. Vers LK1.1.18
<4> ***WARNING*** No MII transceivers found!
but no MAC address, and no ethN number is given.
I consider this a bug (and submitted a patch a year ago or so).
Should I resubmit the patch?
Andries
next reply other threads:[~2003-01-21 20:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-21 20:45 Andries.Brouwer [this message]
2003-01-22 9:29 ` 3c509.c Marc Zyngier
2003-01-21 23:34 3c509.c James Bottomley
2003-01-22 1:11 3c509.c Andries.Brouwer
2003-01-22 16:44 ` 3c509.c James Bottomley
2003-01-22 16:57 ` 3c509.c Jeff Garzik
2003-01-22 11:10 3c509.c Andries.Brouwer
2003-01-22 12:13 ` 3c509.c Marc Zyngier
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=UTC200301212045.h0LKjSp11532.aeb@smtp.cwi.nl \
--to=andries.brouwer@cwi.nl \
--cc=ALESSANDRO.SUARDI@oracle.com \
--cc=efault@gmx.de \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mzyngier@freesurf.fr \
/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
all inboxes | Powered by JetHome®