All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] More network pci_enable cleanups.
@ 2001-02-11  2:56 davej
  2001-02-11  3:54 ` Jeff Garzik
  0 siblings, 1 reply; 5+ messages in thread
From: davej @ 2001-02-11  2:56 UTC (permalink / raw)
  To: Alan Cox; +Cc: Linux Kernel Mailing List, Jeff Garzik


Hey Alan/Jeff,
 Here are the remaining network driver fixups for pci_enable_device()
(Except starfire, which Jeff has a newer driver for which already has
this fix).

regards.

Dave.

-- 
| Dave Jones.        http://www.suse.de/~davej
| SuSE Labs

diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/defxx.c linux-dj/drivers/net/defxx.c
--- linux/drivers/net/defxx.c	Sat Feb 10 02:49:43 2001
+++ linux-dj/drivers/net/defxx.c	Sat Feb 10 03:05:03 2001
@@ -196,6 +196,7 @@
  *		Jul 2000	tjeerd		Much cleanup and some bug fixes
  *		Sep 2000	tjeerd		Fix leak on unload, cosmetic code cleanup
  *		Feb 2001			Skb allocation fixes
+ *		Feb 2001	davej		PCI enable cleanups.
  */

 /* Include files */
@@ -414,6 +415,7 @@
 	struct net_device *dev;
 	DFX_board_t	  *bp;			/* board pointer */
 	static int version_disp;
+	int err;

 	if (!version_disp)					/* display version info if adapter is found */
 	{
@@ -429,8 +431,8 @@

 	/* Enable PCI device. */
 	if (pdev != NULL) {
-		if (pci_enable_device (pdev))
-			goto err_out;
+		err = pci_enable_device (pdev);
+		if (err) return err;
 		ioaddr = pci_resource_start (pdev, 1);
 	}

diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/dgrs.c linux-dj/drivers/net/dgrs.c
--- linux/drivers/net/dgrs.c	Sat Feb 10 02:49:43 2001
+++ linux-dj/drivers/net/dgrs.c	Sat Feb 10 03:05:09 2001
@@ -78,6 +78,9 @@
  *	one of the devices can't be allocated. Fix SET_MODULE_OWNER
  *	on the loop to use devN instead of repeated calls to dev.
  *
+ *	davej <davej@suse.de> - 9/2/2001
+ *	- Enable PCI device before reading ioaddr/irq
+ *
  */

 static char *version = "$Id: dgrs.c,v 1.13 2000/06/06 04:07:00 rick Exp $";
@@ -1352,7 +1355,7 @@

 static int __init  dgrs_scan(void)
 {
-	int	cards_found = 0;
+	int	cards_found;
 	uint	io;
 	uint	mem;
 	uint	irq;
diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/eepro.c linux-dj/drivers/net/eepro.c
--- linux/drivers/net/eepro.c	Sat Feb 10 02:49:43 2001
+++ linux-dj/drivers/net/eepro.c	Sat Feb 10 03:05:05 2001
@@ -1098,7 +1098,7 @@
 	printk (KERN_ERR "%s: transmit timed out, %s?\n", dev->name,
 		"network cable problem");
 	/* This is not a duplicate. One message for the console,
-	   one for the the log file  */
+	   one for the log file  */
 	printk (KERN_DEBUG "%s: transmit timed out, %s?\n", dev->name,
 		"network cable problem");
 	eepro_complete_selreset(ioaddr);
diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/eepro100.c linux-dj/drivers/net/eepro100.c
--- linux/drivers/net/eepro100.c	Sat Feb 10 02:49:43 2001
+++ linux-dj/drivers/net/eepro100.c	Sat Feb 10 03:05:06 2001
@@ -25,6 +25,8 @@
 		Disabled FC and ER, to avoid lockups when when we get FCP interrupts.
 	2000 Jul 17 Goutham Rao <goutham.rao@intel.com>
 		PCI DMA API fixes, adding pci_dma_sync_single calls where neccesary
+	2000 Feb 9 Dave Jones <davej@suse.de>
+		PCI enable cleanups
 */

 static const char *version =
@@ -550,10 +552,10 @@
 {
 	unsigned long ioaddr;
 	int irq, i;
-	int acpi_idle_state = 0, pm;
-	static int cards_found /* = 0 */;
+	int acpi_idle_state, pm;
+	static int cards_found;
+	static int did_version;		/* Already printed version info. */

-	static int did_version /* = 0 */;		/* Already printed version info. */
 	if (speedo_debug > 0  &&  did_version++ == 0)
 		printk(version);

diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/macsonic.c linux-dj/drivers/net/macsonic.c
--- linux/drivers/net/macsonic.c	Sat Feb 10 02:49:44 2001
+++ linux-dj/drivers/net/macsonic.c	Sat Feb 10 03:05:07 2001
@@ -135,7 +135,7 @@
 		unsigned long desc_base, desc_top;
 		if ((lp->sonic_desc =
 		     kmalloc(SIZEOF_SONIC_DESC
-			     * SONIC_BUS_SCALE(lp->dma_bitmode), GFP_DMA)) == NULL) {
+			     * SONIC_BUS_SCALE(lp->dma_bitmode), GFP_KERNEL | GFP_DMA)) == NULL) {
 			printk(KERN_ERR "%s: couldn't allocate descriptor buffers\n", dev->name);
 		}
 		desc_base = (unsigned long) lp->sonic_desc;
@@ -165,7 +165,7 @@

 	/* FIXME, maybe we should use skbs */
 	if ((lp->rba = (char *)
-	     kmalloc(SONIC_NUM_RRS * SONIC_RBSIZE, GFP_DMA)) == NULL) {
+	     kmalloc(SONIC_NUM_RRS * SONIC_RBSIZE, GFP_KERNEL | GFP_DMA)) == NULL) {
 		printk(KERN_ERR "%s: couldn't allocate receive buffers\n", dev->name);
 		kfree(lp->sonic_desc);
 		lp->sonic_desc = NULL;
diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/natsemi.c linux-dj/drivers/net/natsemi.c
--- linux/drivers/net/natsemi.c	Sat Feb 10 02:49:44 2001
+++ linux-dj/drivers/net/natsemi.c	Sat Feb 10 03:05:04 2001
@@ -31,6 +31,7 @@
 		- Call netif_start_queue from dev->tx_timeout
 		- wmb() in start_tx() to flush data
 		- Update Tx locking
+		- Clean up PCI enable (davej)

 */

@@ -378,8 +379,8 @@
 		printk(KERN_INFO "%s" KERN_INFO "%s" KERN_INFO "%s",
 			version1, version2, version3);

-	if (pci_enable_device(pdev))
-		return -EIO;
+	i = pci_enable_device(pdev);
+	if (i) return i;

 	find_cnt++;
 	option = find_cnt < MAX_UNITS ? options[find_cnt] : 0;
diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/ncr885e.c linux-dj/drivers/net/ncr885e.c
--- linux/drivers/net/ncr885e.c	Sat Feb 10 02:49:44 2001
+++ linux-dj/drivers/net/ncr885e.c	Sat Feb 10 03:05:05 2001
@@ -1163,7 +1163,7 @@
 }

 /*  Since the NCR 53C885 is a multi-function chip, I'm not worrying about
- *  trying to get the the device(s) in slot order.  For our (Synergy's)
+ *  trying to get the device(s) in slot order.  For our (Synergy's)
  *  purpose, there's just a single 53C885 on the board and we don't
  *  worry about the rest.
  */
diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/pcnet32.c linux-dj/drivers/net/pcnet32.c
--- linux/drivers/net/pcnet32.c	Sat Feb 10 02:49:45 2001
+++ linux-dj/drivers/net/pcnet32.c	Sat Feb 10 03:05:09 2001
@@ -478,10 +478,17 @@
 {
     static int card_idx;
     long ioaddr;
-    int err = 0;
+    int err;

     printk(KERN_INFO "pcnet32_probe_pci: found device %#08x.%#08x\n", ent->vendor, ent->device);

+    if ((err = pci_enable_device(pdev)) < 0) {
+	printk(KERN_ERR "pcnet32.c: failed to enable device -- err=%d\n", err);
+	return err;
+    }
+
+    pci_set_master(pdev);
+
     ioaddr = pci_resource_start (pdev, 0);
     printk(KERN_INFO "    ioaddr=%#08lx  resource_flags=%#08lx\n", ioaddr, pci_resource_flags (pdev, 0));
     if (!ioaddr) {
@@ -494,13 +501,7 @@
 	return -ENODEV;
     }

-    if ((err = pci_enable_device(pdev)) < 0) {
-	printk(KERN_ERR "pcnet32.c: failed to enable device -- err=%d\n", err);
-	return err;
-    }
-
-    pci_set_master(pdev);
-
+
     return pcnet32_probe1(ioaddr, pdev->irq, 1, card_idx, pdev);
 }

diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/sis900.c linux-dj/drivers/net/sis900.c
--- linux/drivers/net/sis900.c	Sat Feb 10 02:49:45 2001
+++ linux-dj/drivers/net/sis900.c	Sat Feb 10 03:05:06 2001
@@ -18,6 +18,7 @@
    preliminary Rev. 1.0 Jan. 18, 1998
    http://www.sis.com.tw/support/databook.htm

+   Rev 1.07.09 Feb.  9 2001 Dave Jones <davej@suse.de> PCI enable cleanup
    Rev 1.07.08 Jan.  8 2001 Lei-Chun Chang added RTL8201 PHY support
    Rev 1.07.07 Nov. 29 2000 Lei-Chun Chang added kernel-doc extractable documentation and 630 workaround fix
    Rev 1.07.06 Nov.  7 2000 Jeff Garzik <jgarzik@mandrakesoft.com> some bug fix and cleaning
@@ -60,7 +61,7 @@
 #include "sis900.h"

 static const char *version =
-"sis900.c: v1.07.08  1/8/2001\n";
+"sis900.c: v1.07.09  2/9/2001\n";

 static int max_interrupt_work = 20;
 static int multicast_filter_limit = 128;
@@ -255,7 +256,7 @@
 	long ioaddr;
 	struct net_device *net_dev;
 	int irq;
-	int i, ret = 0;
+	int i, ret;
 	u8 revision;
 	char *card_name = card_names[pci_id->driver_data];

@@ -266,8 +267,9 @@
 	}

 	/* setup various bits in PCI command register */
-	if (pci_enable_device (pci_dev))
-		return -ENODEV;
+	ret = pci_enable_device (pci_dev);
+	if (ret) return ret;
+
 	pci_set_master(pci_dev);

 	irq = pci_dev->irq;
diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/winbond-840.c linux-dj/drivers/net/winbond-840.c
--- linux/drivers/net/winbond-840.c	Sat Feb 10 02:49:47 2001
+++ linux-dj/drivers/net/winbond-840.c	Sat Feb 10 03:05:11 2001
@@ -381,8 +381,9 @@
 	int i, option = find_cnt < MAX_UNITS ? options[find_cnt] : 0;
 	long ioaddr;

-	if (pci_enable_device(pdev))
-		return -EIO;
+	i = pci_enable_device(pdev);
+	if (i) return i;
+
 	pci_set_master(pdev);

 	irq = pdev->irq;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-02-11 12:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-02-11  2:56 [PATCH] More network pci_enable cleanups davej
2001-02-11  3:54 ` Jeff Garzik
2001-02-11 12:02   ` davej
2001-02-11 12:12     ` Jeff Garzik
2001-02-11 11:12       ` Arnaldo Carvalho de Melo

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.