mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-20 16:30:53 +00:00
floppy: Run floppy initialization asynchronous
floppy_init is quite slow, 3s on my test system to determine that there is no floppy. Run it asynchronous to the other init calls to improve boot time. [jkosina@suse.cz: fix modular build] Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
a70f35af4e
commit
0cc15d03bc
@ -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.
|
||||
@ -4122,7 +4123,7 @@ static struct kobject *floppy_find(dev_t dev, int *part, void *data)
|
||||
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;
|
||||
@ -4337,6 +4338,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;
|
||||
|
Loading…
Reference in New Issue
Block a user