mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH][ATM] cleanup nicstar, suni and idt77105
@ 2003-03-05 16:16 chas williams
  2003-03-08 21:01 ` David S. Miller
  0 siblings, 1 reply; 6+ messages in thread
From: chas williams @ 2003-03-05 16:16 UTC (permalink / raw)
  To: David S. Miller; +Cc: linux-kernel

this patch removes the mod_inc_use_count/mod_dec_use_count from the
suni and idt77105 drivers (automatic ref counting of the suni_init
and idt77105_init symbols handles things nicely).  #ifdef MODULE,
init_module and exit_module are gone. the cli() in idt77105 was
converted to a spinlock.  and since both phy drivers now have .stop
functions, the nicstar can unload itself when using either.

Index: linux/drivers/atm/nicstar.c
===================================================================
RCS file: /home/chas/CVSROOT/linux/drivers/atm/nicstar.c,v
retrieving revision 1.1
diff -u -r1.1 nicstar.c
--- linux/drivers/atm/nicstar.c	20 Feb 2003 13:45:03 -0000	1.1
+++ linux/drivers/atm/nicstar.c	5 Mar 2003 01:05:21 -0000
@@ -354,11 +354,8 @@
 
       card = cards[i];
 
-#ifdef CONFIG_ATM_NICSTAR_USE_IDT77105
-      if (card->max_pcr == ATM_25_PCR) {
-        idt77105_stop(card->atmdev);
-      }
-#endif /* CONFIG_ATM_NICSTAR_USE_IDT77105 */
+      if (card->atmdev->phy && card->atmdev->phy->stop)
+        card->atmdev->phy->stop(card->atmdev);
 
       /* Stop everything */
       writel(0x00000000, card->membase + CFG);
@@ -905,22 +902,13 @@
    card->atmdev->phy = NULL;
 
 #ifdef CONFIG_ATM_NICSTAR_USE_SUNI
-   if (card->max_pcr == ATM_OC3_PCR) {
+   if (card->max_pcr == ATM_OC3_PCR)
       suni_init(card->atmdev);
-
-      MOD_INC_USE_COUNT;
-      /* Can't remove the nicstar driver or the suni driver would oops */
-   }
 #endif /* CONFIG_ATM_NICSTAR_USE_SUNI */
 
 #ifdef CONFIG_ATM_NICSTAR_USE_IDT77105
-   if (card->max_pcr == ATM_25_PCR) {
+   if (card->max_pcr == ATM_25_PCR)
       idt77105_init(card->atmdev);
-      /* Note that for the IDT77105 PHY we don't need the awful
-       * module count hack that the SUNI needs because we can
-       * stop the '105 when the nicstar module is cleaned up.
-       */
-   }
 #endif /* CONFIG_ATM_NICSTAR_USE_IDT77105 */
 
    if (card->atmdev->phy && card->atmdev->phy->start)
Index: linux/drivers/atm/idt77105.c
===================================================================
RCS file: /home/chas/CVSROOT/linux/drivers/atm/idt77105.c,v
retrieving revision 1.2
diff -u -r1.2 idt77105.c
--- linux/drivers/atm/idt77105.c	26 Feb 2003 02:23:53 -0000	1.2
+++ linux/drivers/atm/idt77105.c	5 Mar 2003 00:40:49 -0000
@@ -308,7 +308,6 @@
 	spin_lock_irqsave(&idt77105_priv_lock, flags);
 	if (start_timer) {
 		start_timer = 0;
-		spin_unlock_irqrestore(&idt77105_priv_lock, flags);
                 
 		init_timer(&stats_timer);
 		stats_timer.expires = jiffies+IDT77105_STATS_TIMER_PERIOD;
@@ -319,34 +318,12 @@
 		restart_timer.expires = jiffies+IDT77105_RESTART_TIMER_PERIOD;
 		restart_timer.function = idt77105_restart_timer_func;
 		add_timer(&restart_timer);
-		return 0;
 	}
 	spin_unlock_irqrestore(&idt77105_priv_lock, flags);
 	return 0;
 }
 
 
-static const struct atmphy_ops idt77105_ops = {
-	.start = 	idt77105_start,
-	.ioctl =	idt77105_ioctl,
-	.interrupt =	idt77105_int,
-	.stop =		idt77105_stop,
-};
-
-
-int __init idt77105_init(struct atm_dev *dev)
-{
-	dev->phy = &idt77105_ops;
-	return 0;
-}
-
-
-/*
- * TODO: this function should be called through phy_ops
- * but that will not be possible for some time as there is
- * currently a freeze on modifying that structure
- * -- Greg Banks, 13 Sep 1999
- */
 int idt77105_stop(struct atm_dev *dev)
 {
 	struct idt77105_priv *walk, *prev;
@@ -376,24 +353,29 @@
 }
 
 
+static const struct atmphy_ops idt77105_ops = {
+	.start = 	idt77105_start,
+	.ioctl =	idt77105_ioctl,
+	.interrupt =	idt77105_int,
+	.stop =		idt77105_stop,
+};
 
-EXPORT_SYMBOL(idt77105_init);
-
-MODULE_LICENSE("GPL");
-
-#ifdef MODULE
 
-int init_module(void)
+int idt77105_init(struct atm_dev *dev)
 {
+	dev->phy = &idt77105_ops;
 	return 0;
 }
 
+EXPORT_SYMBOL(idt77105_init);
 
-void cleanup_module(void)
+static void __exit idt77105_exit(void)
 {
         /* turn off timers */
         del_timer(&stats_timer);
         del_timer(&restart_timer);
 }
 
-#endif
+module_exit(idt77105_exit);
+
+MODULE_LICENSE("GPL");
Index: linux/drivers/atm/idt77105.h
===================================================================
RCS file: /home/chas/CVSROOT/linux/drivers/atm/idt77105.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 idt77105.h
--- linux/drivers/atm/idt77105.h	20 Feb 2003 13:45:03 -0000	1.1.1.1
+++ linux/drivers/atm/idt77105.h	5 Mar 2003 00:34:51 -0000
@@ -76,8 +76,7 @@
 #define IDT77105_CTRSEL_RHEC	0x01	/* W, Rx HEC Error Counter */
 
 #ifdef __KERNEL__
-int idt77105_init(struct atm_dev *dev) __init;
-int idt77105_stop(struct atm_dev *dev);
+int idt77105_init(struct atm_dev *dev);
 #endif
 
 /*
Index: linux/drivers/atm/suni.c
===================================================================
RCS file: /home/chas/CVSROOT/linux/drivers/atm/suni.c,v
retrieving revision 1.3
diff -u -r1.3 suni.c
--- linux/drivers/atm/suni.c	26 Feb 2003 15:43:30 -0000	1.3
+++ linux/drivers/atm/suni.c	5 Mar 2003 01:04:15 -0000
@@ -307,24 +307,6 @@
 	return 0;
 }
 
-
 EXPORT_SYMBOL(suni_init);
 
-
 MODULE_LICENSE("GPL");
-
-#ifdef MODULE
-
-
-int init_module(void)
-{
-	return 0;
-}
-
-
-void cleanup_module(void)
-{
-	/* Nay */
-}
-
-#endif


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

end of thread, other threads:[~2003-03-23  8:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-05 16:16 [PATCH][ATM] cleanup nicstar, suni and idt77105 chas williams
2003-03-08 21:01 ` David S. Miller
2003-03-09 12:39   ` chas williams
2003-03-20  8:29     ` David S. Miller
2003-03-20 15:20       ` chas williams
2003-03-23  9:06         ` David S. Miller

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®