commented early_printk patch because of rejects.
[linux-flexiantxendom0-3.2.10.git] / drivers / block / ataflop.c
index 76ca82d..803f563 100644 (file)
 
 #undef DEBUG
 
-static struct request_queue floppy_queue;
+static struct request_queue *floppy_queue;
 
-#define QUEUE (&floppy_queue)
-#define CURRENT elv_next_request(&floppy_queue)
+#define QUEUE (floppy_queue)
+#define CURRENT elv_next_request(floppy_queue)
 
 /* Disk types: DD, HD, ED */
 static struct atari_disk_type {
@@ -1947,7 +1947,9 @@ static int __init atari_floppy_init (void)
        PhysTrackBuffer = virt_to_phys(TrackBuffer);
        BufferDrive = BufferSide = BufferTrack = -1;
 
-       blk_init_queue(&floppy_queue, do_fd_request, &ataflop_lock);
+       floppy_queue = blk_init_queue(do_fd_request, &ataflop_lock);
+       if (!floppy_queue)
+               goto Enomem;
 
        for (i = 0; i < FD_MAX_UNITS; i++) {
                unit[i].track = -1;
@@ -1957,7 +1959,7 @@ static int __init atari_floppy_init (void)
                sprintf(unit[i].disk->disk_name, "fd%d", i);
                unit[i].disk->fops = &floppy_fops;
                unit[i].disk->private_data = &unit[i];
-               unit[i].disk->queue = &floppy_queue;
+               unit[i].disk->queue = floppy_queue;
                set_capacity(unit[i].disk, MAX_DISK_SIZE * 2);
                add_disk(unit[i].disk);
        }
@@ -1974,6 +1976,8 @@ static int __init atari_floppy_init (void)
 Enomem:
        while (i--)
                put_disk(unit[i].disk);
+       if (floppy_queue)
+               blk_cleanup_queue(floppy_queue);
        unregister_blkdev(FLOPPY_MAJOR, "fd");
        return -ENOMEM;
 }
@@ -2017,7 +2021,7 @@ static void atari_floppy_exit(void)
        }
        unregister_blkdev(FLOPPY_MAJOR, "fd");
 
-       blk_cleanup_queue(&floppy_queue);
+       blk_cleanup_queue(floppy_queue);
        del_timer_sync(&fd_timer);
        atari_stram_free( DMABuffer );
 }