netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] (1/4) sdla - move out of Space.c
@ 2003-09-08 21:14 Stephen Hemminger
  2003-09-10 21:00 ` Francois Romieu
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Hemminger @ 2003-09-08 21:14 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: netdev

Patch against 2.60-test5 to move sdla driver out of Space.c for initialization
in non-module case.  Since this driver doesn't come up until the device has
been configured with an ioctl (set_config); there is no way it can have
startup order problems.

diff -Nru a/drivers/net/Space.c b/drivers/net/Space.c
--- a/drivers/net/Space.c	Mon Sep  8 14:01:25 2003
+++ b/drivers/net/Space.c	Mon Sep  8 14:01:25 2003
@@ -97,7 +97,6 @@
 extern int mac8390_probe(struct net_device *dev);
 extern int mac89x0_probe(struct net_device *dev);
 extern int mc32_probe(struct net_device *dev);
-extern struct net_device *sdla_init(void);
 extern struct net_device *cops_probe(int unit);
 extern struct net_device *ltpc_probe(void);
   
@@ -470,10 +469,6 @@
 #ifdef CONFIG_LTPC
 	ltpc_probe();
 #endif
-#ifdef CONFIG_SDLA
-	sdla_init();
-#endif
-
 }
 
 /*
diff -Nru a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c
--- a/drivers/net/wan/sdla.c	Mon Sep  8 14:01:25 2003
+++ b/drivers/net/wan/sdla.c	Mon Sep  8 14:01:25 2003
@@ -1626,41 +1626,16 @@
 
 static void setup_sdla(struct net_device *dev)
 {
+	struct frad_local *flp = dev->priv;
+
+	netdev_boot_setup_check(dev);
+
+	SET_MODULE_OWNER(dev);
 	dev->flags		= 0;
 	dev->type		= 0xFFFF;
 	dev->hard_header_len	= 0;
 	dev->addr_len		= 0;
 	dev->mtu		= SDLA_MAX_MTU;
-}
-
-static int frad_registered;
-
-struct net_device * __init sdla_init(void)
-{
-	struct net_device *dev;
-	struct frad_local *flp;
-	int err = -ENOMEM;
-
-	if (!frad_registered) {
-		err = register_frad(devname);
-		if (err) {
-			printk(KERN_ERR "%s: frad registration failed %d\n",
-			       devname, err);
-			return ERR_PTR(err);
-		}
-		frad_registered = 1;
-		printk("%s.\n", version);
-	}
-		
-
-	dev = alloc_netdev(sizeof(struct frad_local), "sdla0", setup_sdla);
-	if (!dev)
-		goto out;
-
-	SET_MODULE_OWNER(dev);
-	netdev_boot_setup_check(dev);
-
-	flp = dev->priv;
 
 	dev->open		= sdla_open;
 	dev->stop		= sdla_close;
@@ -1680,42 +1655,44 @@
 	flp->timer.expires	= 1;
 	flp->timer.data		= (unsigned long) dev;
 	flp->timer.function	= sdla_poll;
-
-	err = register_netdev(dev);
-	if (err)
-		goto out1;
-	return dev;
-out1:
-	kfree(dev);
-out:
-	return ERR_PTR(err);
 }
 
-#ifdef MODULE
-static struct net_device *sdla0;
+static struct net_device *sdla;
 
 static int __init init_sdla(void)
 {
-	int result = 0;
+	int err;
+
+	printk("%s.\n", version);
+	err = register_frad(devname);
+	if (err) {
+		printk(KERN_ERR "%s: frad registration failed %d\n",
+		       devname, err);
+		return err;
+	}
 
-	sdla0 = sdla_init();
-	if (IS_ERR(sdla0))
-		result = PTR_ERR(sdla0);
+	sdla = alloc_netdev(sizeof(struct frad_local), "sdla0", setup_sdla);
+	if (!sdla) 
+		return -ENOMEM;
+
+	err = register_netdev(sdla);
+	if (err) 
+		kfree(sdla);
 
-	return result;
+	return err;
 }
 
 static void __exit exit_sdla(void)
 {
 	struct frad_local *flp;
 
-	unregister_netdev(sdla0);
-	if (sdla0->irq)
-		free_irq(sdla0->irq, sdla0);
+	unregister_netdev(sdla);
+	if (sdla->irq)
+		free_irq(sdla->irq, sdla);
 
-	flp = sdla0->priv;
+	flp = sdla->priv;
 	del_timer_sync(&flp->timer);
-	free_netdev(sdla0);
+	free_netdev(sdla);
 	
 	unregister_frad(devname);
 }
@@ -1724,4 +1701,3 @@
 
 module_init(init_sdla);
 module_exit(exit_sdla);
-#endif

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

* Re: [PATCH] (1/4) sdla - move out of Space.c
  2003-09-08 21:14 [PATCH] (1/4) sdla - move out of Space.c Stephen Hemminger
@ 2003-09-10 21:00 ` Francois Romieu
  2003-09-11 19:34   ` Jeff Garzik
  0 siblings, 1 reply; 3+ messages in thread
From: Francois Romieu @ 2003-09-10 21:00 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Jeff Garzik, netdev

Apply on top of 2.6.0-test5-bk1 + Stephen sdla patches. Compiles fine.


free_netdev() patrol.


 drivers/net/wan/sdla.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN drivers/net/wan/sdla.c~sh-sdla-free_netdev drivers/net/wan/sdla.c
--- linux-2.6.0-test5-bk1/drivers/net/wan/sdla.c~sh-sdla-free_netdev	Wed Sep 10 22:41:19 2003
+++ linux-2.6.0-test5-bk1-fr/drivers/net/wan/sdla.c	Wed Sep 10 22:42:35 2003
@@ -1669,7 +1669,7 @@ static int __init init_sdla(void)
 
 	err = register_netdev(sdla);
 	if (err) 
-		kfree(sdla);
+		free_netdev(sdla);
 
 	return err;
 }

_

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

* Re: [PATCH] (1/4) sdla - move out of Space.c
  2003-09-10 21:00 ` Francois Romieu
@ 2003-09-11 19:34   ` Jeff Garzik
  0 siblings, 0 replies; 3+ messages in thread
From: Jeff Garzik @ 2003-09-11 19:34 UTC (permalink / raw)
  To: Francois Romieu, Stephen Hemminger; +Cc: netdev

All six patches applied (stephen's 5, francois's one)

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

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

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-08 21:14 [PATCH] (1/4) sdla - move out of Space.c Stephen Hemminger
2003-09-10 21:00 ` Francois Romieu
2003-09-11 19:34   ` 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).