netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] tr/olympic probe: remove #warning, improve error handling
@ 2003-09-11  4:37 Randy.Dunlap
  2003-09-11 19:24 ` Jeff Garzik
  0 siblings, 1 reply; 2+ messages in thread
From: Randy.Dunlap @ 2003-09-11  4:37 UTC (permalink / raw)
  To: netdev; +Cc: jgarzik


Hi,

This patch to 2.6.0-test5 removes the #warning in tokenring/olympic.c
and improves error handling in the probe function.

Comments?  or merge?

Thanks,
--
~Randy


patch_name:	tr_olympic_probe.patch
patch_version:	2003-09-10.21:32:18
author:		Randy.Dunlap <rddunlap@osdl.org>
description:	remove #warning to check ioremap() results;
		add more error handling to probe function;
product:	Linux
product_versions: 260-test5
maintainer:	jgarzik@pobox.com
diffstat:	=
 drivers/net/tokenring/olympic.c |   37 ++++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 13 deletions(-)

diff -Naur ./drivers/net/tokenring/olympic.c~olyprobe ./drivers/net/tokenring/olympic.c
--- ./drivers/net/tokenring/olympic.c~olyprobe	2003-09-08 12:50:21.000000000 -0700
+++ ./drivers/net/tokenring/olympic.c	2003-09-10 21:26:00.000000000 -0700
@@ -210,14 +210,13 @@
 	pci_set_master(pdev);
 
 	if ((i = pci_request_regions(pdev,"olympic"))) { 
-		return i ; 
-	} ; 
+		goto op_disable_dev;
+	}
  
 	dev = alloc_trdev(sizeof(struct olympic_private)) ; 
-
 	if (!dev) {
-		pci_release_regions(pdev) ; 
-		return -ENOMEM ; 
+		i = -ENOMEM; 
+		goto op_free_dev;
 	}
 
 	olympic_priv = dev->priv ;
@@ -231,10 +230,12 @@
 	dev->base_addr=pci_resource_start(pdev, 0);
 	dev->init=NULL; /* Must be NULL otherwise we get called twice */
 	olympic_priv->olympic_card_name = pci_name(pdev);
+	olympic_priv->pdev = pdev; 
 	olympic_priv->olympic_mmio = ioremap(pci_resource_start(pdev,1),256);
 	olympic_priv->olympic_lap = ioremap(pci_resource_start(pdev,2),2048);
-#warning check ioremap return value
-	olympic_priv->pdev = pdev ; 
+	if (!olympic_priv->olympic_mmio || !olympic_priv->olympic_lap) {
+		goto op_free_iomap;
+	}
 				
 	if ((pkt_buf_sz[card_no] < 100) || (pkt_buf_sz[card_no] > 18000) )
 		olympic_priv->pkt_buf_sz = PKT_BUF_SZ ; 
@@ -246,12 +247,8 @@
 	olympic_priv->olympic_message_level = message_level[card_no] ; 
 	olympic_priv->olympic_network_monitor = network_monitor[card_no];
 	
-	if((i = olympic_init(dev))) {
-		iounmap(olympic_priv->olympic_mmio) ; 
-		iounmap(olympic_priv->olympic_lap) ; 
-		kfree(dev) ; 
-		pci_release_regions(pdev) ; 
-		return i ; 
+	if ((i = olympic_init(dev))) {
+		goto op_free_iomap;
 	}				
 
 	dev->open=&olympic_open;
@@ -275,6 +272,20 @@
 		printk("Olympic: Network Monitor information: /proc/%s\n",proc_name); 
 	}
 	return  0 ;
+
+op_free_iomap:
+	if (olympic_priv->olympic_mmio)
+		iounmap(olympic_priv->olympic_mmio); 
+	if (olympic_priv->olympic_lap)
+		iounmap(olympic_priv->olympic_lap);
+
+op_free_dev:
+	free_netdev(dev);
+	pci_release_regions(pdev); 
+
+op_disable_dev:
+	pci_disable_device(pdev);
+	return i;
 }
 
 static int __devinit olympic_init(struct net_device *dev)

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

* Re: [PATCH] tr/olympic probe: remove #warning, improve error handling
  2003-09-11  4:37 [PATCH] tr/olympic probe: remove #warning, improve error handling Randy.Dunlap
@ 2003-09-11 19:24 ` Jeff Garzik
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Garzik @ 2003-09-11 19:24 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: netdev

applied

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

end of thread, other threads:[~2003-09-11 19:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-11  4:37 [PATCH] tr/olympic probe: remove #warning, improve error handling Randy.Dunlap
2003-09-11 19:24 ` Jeff Garzik

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).