vserver 1.9.5.x5
[linux-2.6.git] / drivers / block / amiflop.c
index 42c1e56..1468e8c 100644 (file)
 #define FD_HD_3        0x55555555  /* high-density 3.5" (1760K) drive */
 #define FD_DD_5        0xaaaaaaaa  /* double-density 5.25" (440K) drive */
 
-static long int fd_def_df0 = FD_DD_3;     /* default for df0 if it doesn't identify */
+static unsigned long int fd_def_df0 = FD_DD_3;     /* default for df0 if it doesn't identify */
 
-MODULE_PARM(fd_def_df0,"l");
+module_param(fd_def_df0, ulong, 0);
 MODULE_LICENSE("GPL");
 
 static struct request_queue *floppy_queue;
@@ -163,7 +163,7 @@ static int writepending;
 static int writefromint;
 static char *raw_buf;
 
-static spinlock_t amiflop_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(amiflop_lock);
 
 #define RAW_BUF_SIZE 30000  /* size of raw disk data */
 
@@ -386,16 +386,6 @@ static void fd_motor_off(unsigned long drive)
        fd_select(drive);
        udelay (1);
        fd_deselect(drive);
-
-#ifdef MODULE
-/*
-  this is the last interrupt for any drive access, happens after
-  release (from floppy_off). So we have to wait until now to decrease
-  the use count.
-*/
-       if (decusecount)
-               MOD_DEC_USE_COUNT;
-#endif
 }
 
 static void floppy_off (unsigned int nr)
@@ -1590,10 +1580,6 @@ static int floppy_open(struct inode *inode, struct file *filp)
        local_irq_save(flags);
        fd_ref[drive]++;
        fd_device[drive] = system;
-#ifdef MODULE
-       if (unit[drive].motor == 0)
-               MOD_INC_USE_COUNT;
-#endif
        local_irq_restore(flags);
 
        unit[drive].dtype=&data_types[system];
@@ -1839,6 +1825,7 @@ int init_module(void)
        return amiga_floppy_init();
 }
 
+#if 0 /* not safe to unload */
 void cleanup_module(void)
 {
        int i;
@@ -1860,3 +1847,4 @@ void cleanup_module(void)
        unregister_blkdev(FLOPPY_MAJOR, "fd");
 }
 #endif
+#endif