I think that's worth another "ewww...", don't you?
> * something is wrong in the vortex initialization: I don't have such a
> card, but the driver didn't return an error message on insmod. I'm not
> sure if my fix is correct.
That was intentional - dhinds suggested that if the hardware
isn't present the driver should float about in memory anyway.
That is the current behaviour of 3c575_cb.c  I forget the
rationale for this.  Perhaps David can remind me?
There are a fair few pending 3c59x updates wrt Linus'
tree - small stuff.  Most are in the zerocopy patch,
and there's a delta on top of that here.
Jeff Garzik wrote:
> 
> 
> IMHO vortex should be trying to initialize EISA regardless of the
> results of the PCI probe... Andrew?
I guess so.  Testing is hard - EISA vorticies are hen's teeth.  I've
heard from only two people who have such hardware in a year.
I've made the below change.  Pending enlightenment from
DavidH and some testing from my sole EISA Vortex person,
I'll flush this stuff out to DavidM.  Thanks.
--- drivers/net/3c59x.c	2001/02/14 11:51:43	1.41
+++ drivers/net/3c59x.c	2001/02/14 13:23:49
@@ -866,8 +866,7 @@
 		}
 
 		rc = vortex_probe1(NULL, ioaddr, inw(ioaddr + 0xC88) >> 12,
-				   EISA_TBL_OFFSET,
-				   vortex_cards_found);
+				   EISA_TBL_OFFSET, vortex_cards_found);
 		if (rc == 0)
 			vortex_cards_found++;
 		else
@@ -1005,7 +1004,7 @@
 		pdev->driver_data = dev;
 
 	/* The lower four bits are the media type. */
-	if (dev->mem_start) {
+	if (dev->mem_start && dev->mem_start != ~0UL) {
 		/*
 		 * AKPM: ewww..  The 'options' param is passed in as the third arg to the
 		 * LILO 'ether=' argument for non-modular use
@@ -2794,18 +2793,17 @@
 
 static int __init vortex_init (void)
 {
-	int rc;
-	
-	rc = pci_module_init(&vortex_driver);
-	if (rc < 0) {
-		rc = vortex_eisa_init();
-		if (rc > 0)
-			vortex_have_eisa = 1;
-	} else {
+	int pci_rc, eisa_rc;
+
+	pci_rc = pci_module_init(&vortex_driver);
+	eisa_rc = vortex_eisa_init();
+
+	if (pci_rc == 0)
 		vortex_have_pci = 1;
-	}
+	if (eisa_rc > 0)
+		vortex_have_eisa = 1;
 
-	return rc;
+	return (vortex_have_pci + vortex_have_eisa) ? 0 : -ENODEV;
 }
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/