
From: Christoph Hellwig <hch@lst.de>

Note that most of the drivers are in a compiling shape currently, but I
want to get rid of the last callers of those.

(acked by Tom Rini)


---

 25-akpm/arch/ppc/4xx_io/serial_sicc.c |   10 +---------
 25-akpm/arch/ppc/8260_io/uart.c       |   10 ++--------
 25-akpm/arch/ppc/8xx_io/cs4218_tdm.c  |   13 +------------
 25-akpm/arch/ppc/8xx_io/uart.c        |   11 ++---------
 4 files changed, 6 insertions(+), 38 deletions(-)

diff -puN arch/ppc/4xx_io/serial_sicc.c~ppc32-fix-mod_incdec_use_count-abuse-in-ppc-4xx-8xx-code arch/ppc/4xx_io/serial_sicc.c
--- 25/arch/ppc/4xx_io/serial_sicc.c~ppc32-fix-mod_incdec_use_count-abuse-in-ppc-4xx-8xx-code	2004-05-16 00:05:48.902762960 -0700
+++ 25-akpm/arch/ppc/4xx_io/serial_sicc.c	2004-05-16 00:05:48.912761440 -0700
@@ -1431,7 +1431,6 @@ static void siccuart_close(struct tty_st
     save_flags(flags); cli();
 
     if (tty_hung_up_p(filp)) {
-        MOD_DEC_USE_COUNT;
         restore_flags(flags);
         return;
     }
@@ -1452,7 +1451,6 @@ static void siccuart_close(struct tty_st
         state->count = 0;
     }
     if (state->count) {
-        MOD_DEC_USE_COUNT;
         restore_flags(flags);
         return;
     }
@@ -1495,7 +1493,6 @@ static void siccuart_close(struct tty_st
     }
     info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CLOSING);
     wake_up_interruptible(&info->close_wait);
-    MOD_DEC_USE_COUNT;
 }
 
 static void siccuart_wait_until_sent(struct tty_struct *tty, int timeout)
@@ -1685,9 +1682,7 @@ static int siccuart_open(struct tty_stru
 
 
     // is this a line that we've got?
-    MOD_INC_USE_COUNT;
     if (line >= SERIAL_SICC_NR) {
-        MOD_DEC_USE_COUNT;
         return -ENODEV;
     }
 
@@ -1707,7 +1702,6 @@ static int siccuart_open(struct tty_stru
         if (tmp_buf)
             free_page(page);
         else if (!page) {
-            MOD_DEC_USE_COUNT;
             return -ENOMEM;
         }
         tmp_buf = (u_char *)page;
@@ -1720,7 +1714,6 @@ static int siccuart_open(struct tty_stru
         (info->flags & ASYNC_CLOSING)) {
         if (info->flags & ASYNC_CLOSING)
             interruptible_sleep_on(&info->close_wait);
-        MOD_DEC_USE_COUNT;
         return -EAGAIN;
     }
 
@@ -1729,13 +1722,11 @@ static int siccuart_open(struct tty_stru
      */
     retval = siccuart_startup(info);
     if (retval) {
-        MOD_DEC_USE_COUNT;
         return retval;
     }
 
     retval = block_til_ready(tty, filp, info);
     if (retval) {
-        MOD_DEC_USE_COUNT;
         return retval;
     }
 
@@ -1778,6 +1769,7 @@ int __init siccuart_init(void)
 	return -ENOMEM;
     printk("IBM Vesta SICC serial port driver V 0.1 by Yudong Yang and Yi Ge / IBM CRL .\n");
     siccnormal_driver->driver_name = "serial_sicc";
+    siccnormal_driver->owner = THIS_MODULE;
     siccnormal_driver->name = SERIAL_SICC_NAME;
     siccnormal_driver->major = SERIAL_SICC_MAJOR;
     siccnormal_driver->minor_start = SERIAL_SICC_MINOR;
diff -puN arch/ppc/8260_io/uart.c~ppc32-fix-mod_incdec_use_count-abuse-in-ppc-4xx-8xx-code arch/ppc/8260_io/uart.c
--- 25/arch/ppc/8260_io/uart.c~ppc32-fix-mod_incdec_use_count-abuse-in-ppc-4xx-8xx-code	2004-05-16 00:05:48.904762656 -0700
+++ 25-akpm/arch/ppc/8260_io/uart.c	2004-05-16 00:05:48.914761136 -0700
@@ -592,9 +592,7 @@ static _INLINE_ void check_modem_status(
 #ifdef SERIAL_DEBUG_OPEN
 			printk("scheduling hangup...");
 #endif
-			MOD_INC_USE_COUNT;
-			if (schedule_work(&info->tqueue_hangup) == 0)
-				MOD_DEC_USE_COUNT;
+			schedule_work(&info->tqueue_hangup);
 		}
 	}
 	if (info->flags & ASYNC_CTS_FLOW) {
@@ -723,7 +721,6 @@ static void do_serial_hangup(void *priva
 	tty = info->tty;
 	if (tty)
 		tty_hangup(tty);
-	MOD_DEC_USE_COUNT;
 }
 
 /*static void rs_8xx_timer(void)
@@ -1689,7 +1686,6 @@ static void rs_8xx_close(struct tty_stru
 
 	if (tty_hung_up_p(filp)) {
 		DBG_CNT("before DEC-hung");
-		MOD_DEC_USE_COUNT;
 		restore_flags(flags);
 		return;
 	}
@@ -1716,7 +1712,6 @@ static void rs_8xx_close(struct tty_stru
 	}
 	if (state->count) {
 		DBG_CNT("before DEC-2");
-		MOD_DEC_USE_COUNT;
 		restore_flags(flags);
 		return;
 	}
@@ -1770,7 +1765,6 @@ static void rs_8xx_close(struct tty_stru
 	}
 	info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CLOSING);
 	wake_up_interruptible(&info->close_wait);
-	MOD_DEC_USE_COUNT;
 	restore_flags(flags);
 }
 
@@ -2021,7 +2015,6 @@ static int rs_8xx_open(struct tty_struct
 	if (retval)
 		return retval;
 
-	MOD_INC_USE_COUNT;
 	retval = block_til_ready(tty, filp, info);
 	if (retval) {
 #ifdef SERIAL_DEBUG_OPEN
@@ -2530,6 +2523,7 @@ static int __init rs_8xx_init(void)
 
 	/* Initialize the tty_driver structure */
 
+	serial_driver->owner = THIS_MODULE;
 	serial_driver->driver_name = "serial";
 	serial_driver->devfs_name = "tts/";
 	serial_driver->name = "ttyS";
diff -puN arch/ppc/8xx_io/cs4218_tdm.c~ppc32-fix-mod_incdec_use_count-abuse-in-ppc-4xx-8xx-code arch/ppc/8xx_io/cs4218_tdm.c
--- 25/arch/ppc/8xx_io/cs4218_tdm.c~ppc32-fix-mod_incdec_use_count-abuse-in-ppc-4xx-8xx-code	2004-05-16 00:05:48.906762352 -0700
+++ 25-akpm/arch/ppc/8xx_io/cs4218_tdm.c	2004-05-16 00:05:48.916760832 -0700
@@ -1456,21 +1456,10 @@ static void cs_mksound(unsigned int hz, 
 	restore_flags(flags);
 }
 
-static void CS_open(void)
-{
-	MOD_INC_USE_COUNT;
-}
-
-static void CS_release(void)
-{
-	MOD_DEC_USE_COUNT;
-}
-
 static MACHINE mach_cs4218 = {
+	.owner =	THIS_MODULE,
 	.name =		"HIOX CS4218",
 	.name2 =	"Built-in Sound",
-	.open =		CS_open,
-	.release =	CS_release,
 	.dma_alloc =	CS_Alloc,
 	.dma_free =	CS_Free,
 	.irqinit =	CS_IrqInit,
diff -puN arch/ppc/8xx_io/uart.c~ppc32-fix-mod_incdec_use_count-abuse-in-ppc-4xx-8xx-code arch/ppc/8xx_io/uart.c
--- 25/arch/ppc/8xx_io/uart.c~ppc32-fix-mod_incdec_use_count-abuse-in-ppc-4xx-8xx-code	2004-05-16 00:05:48.907762200 -0700
+++ 25-akpm/arch/ppc/8xx_io/uart.c	2004-05-16 00:05:48.918760528 -0700
@@ -583,9 +583,7 @@ static _INLINE_ void check_modem_status(
 #ifdef SERIAL_DEBUG_OPEN
 			printk("scheduling hangup...");
 #endif
-			MOD_INC_USE_COUNT;
-			if (schedule_task(&info->tqueue_hangup) == 0)
-				MOD_DEC_USE_COUNT;
+			schedule_task(&info->tqueue_hangup);
 		}
 	}
 	if (info->flags & ASYNC_CTS_FLOW) {
@@ -719,7 +717,6 @@ static void do_serial_hangup(void *priva
 	tty = info->tty;
 	if (tty)
 		tty_hangup(tty);
-	MOD_DEC_USE_COUNT;
 }
 
 /*static void rs_8xx_timer(void)
@@ -1664,7 +1661,6 @@ static void rs_8xx_close(struct tty_stru
 
 	if (tty_hung_up_p(filp)) {
 		DBG_CNT("before DEC-hung");
-		MOD_DEC_USE_COUNT;
 		restore_flags(flags);
 		return;
 	}
@@ -1691,7 +1687,6 @@ static void rs_8xx_close(struct tty_stru
 	}
 	if (state->count) {
 		DBG_CNT("before DEC-2");
-		MOD_DEC_USE_COUNT;
 		restore_flags(flags);
 		return;
 	}
@@ -1746,7 +1741,6 @@ static void rs_8xx_close(struct tty_stru
 	}
 	info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CLOSING);
 	wake_up_interruptible(&info->close_wait);
-	MOD_DEC_USE_COUNT;
 	restore_flags(flags);
 }
 
@@ -2008,14 +2002,12 @@ static int rs_8xx_open(struct tty_struct
 	if (retval)
 		return retval;
 
-	MOD_INC_USE_COUNT;
 	retval = block_til_ready(tty, filp, info);
 	if (retval) {
 #ifdef SERIAL_DEBUG_OPEN
 		printk("rs_open returning after block_til_ready with %d\n",
 		       retval);
 #endif
-		MOD_DEC_USE_COUNT;
 		return retval;
 	}
 
@@ -2520,6 +2512,7 @@ static int __init rs_8xx_init(void)
 
 	/* Initialize the tty_driver structure */
 
+	serial_driver->owner = THIS_MODULE;
 	serial_driver->driver_name = "serial";
 	serial_driver->devfs_name = "tts/";
 	serial_driver->name = "ttyS";

_
