Merge branch 'for-jens' of git://git.drbd.org/linux-drbd into for-3.6/drivers
authorJens Axboe <axboe@kernel.dk>
Mon, 30 Jul 2012 07:03:10 +0000 (09:03 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 30 Jul 2012 07:03:10 +0000 (09:03 +0200)
1  2 
drivers/block/floppy.c

diff --combined drivers/block/floppy.c
index 1347ba8b83775e0e8a21423958225d96a0b27e99,553f43a90953cab40f421658ecb37fa9c20c8c54..8d4afc83e05fc52bc7db069f9911154c0fca914f
@@@ -191,7 -191,6 +191,7 @@@ static int print_unex = 1
  #include <linux/mutex.h>
  #include <linux/io.h>
  #include <linux/uaccess.h>
 +#include <linux/async.h>
  
  /*
   * PS/2 floppies have much slower step rates than regular floppies.
@@@ -672,6 -671,7 +672,7 @@@ static void __reschedule_timeout(int dr
  
        if (drive == current_reqD)
                drive = current_drive;
+       __cancel_delayed_work(&fd_timeout);
  
        if (drive < 0 || drive >= N_DRIVE) {
                delay = 20UL * HZ;
@@@ -4123,7 -4123,7 +4124,7 @@@ static struct kobject *floppy_find(dev_
        return get_disk(disks[drive]);
  }
  
 -static int __init floppy_init(void)
 +static int __init do_floppy_init(void)
  {
        int i, unit, drive;
        int err, dr;
@@@ -4338,24 -4338,6 +4339,24 @@@ out_put_disk
        return err;
  }
  
 +#ifndef MODULE
 +static __init void floppy_async_init(void *data, async_cookie_t cookie)
 +{
 +      do_floppy_init();
 +}
 +#endif
 +
 +static int __init floppy_init(void)
 +{
 +#ifdef MODULE
 +      return do_floppy_init();
 +#else
 +      /* Don't hold up the bootup by the floppy initialization */
 +      async_schedule(floppy_async_init, NULL);
 +      return 0;
 +#endif
 +}
 +
  static const struct io_region {
        int offset;
        int size;