diff options
| -rw-r--r-- | drivers/block/floppy.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index cce7df367b79..1347ba8b8377 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c | |||
| @@ -191,6 +191,7 @@ static int print_unex = 1; | |||
| 191 | #include <linux/mutex.h> | 191 | #include <linux/mutex.h> |
| 192 | #include <linux/io.h> | 192 | #include <linux/io.h> |
| 193 | #include <linux/uaccess.h> | 193 | #include <linux/uaccess.h> |
| 194 | #include <linux/async.h> | ||
| 194 | 195 | ||
| 195 | /* | 196 | /* |
| 196 | * PS/2 floppies have much slower step rates than regular floppies. | 197 | * PS/2 floppies have much slower step rates than regular floppies. |
| @@ -4122,7 +4123,7 @@ static struct kobject *floppy_find(dev_t dev, int *part, void *data) | |||
| 4122 | return get_disk(disks[drive]); | 4123 | return get_disk(disks[drive]); |
| 4123 | } | 4124 | } |
| 4124 | 4125 | ||
| 4125 | static int __init floppy_init(void) | 4126 | static int __init do_floppy_init(void) |
| 4126 | { | 4127 | { |
| 4127 | int i, unit, drive; | 4128 | int i, unit, drive; |
| 4128 | int err, dr; | 4129 | int err, dr; |
| @@ -4337,6 +4338,24 @@ out_put_disk: | |||
| 4337 | return err; | 4338 | return err; |
| 4338 | } | 4339 | } |
| 4339 | 4340 | ||
| 4341 | #ifndef MODULE | ||
| 4342 | static __init void floppy_async_init(void *data, async_cookie_t cookie) | ||
| 4343 | { | ||
| 4344 | do_floppy_init(); | ||
| 4345 | } | ||
| 4346 | #endif | ||
| 4347 | |||
| 4348 | static int __init floppy_init(void) | ||
| 4349 | { | ||
| 4350 | #ifdef MODULE | ||
| 4351 | return do_floppy_init(); | ||
| 4352 | #else | ||
| 4353 | /* Don't hold up the bootup by the floppy initialization */ | ||
| 4354 | async_schedule(floppy_async_init, NULL); | ||
| 4355 | return 0; | ||
| 4356 | #endif | ||
| 4357 | } | ||
| 4358 | |||
| 4340 | static const struct io_region { | 4359 | static const struct io_region { |
| 4341 | int offset; | 4360 | int offset; |
| 4342 | int size; | 4361 | int size; |
