Commit | Line | Data |
---|---|---|
3e082a91 MW |
1 | /* |
2 | * scsi_wait_scan.c | |
3 | * | |
4 | * Copyright (C) 2006 James Bottomley <James.Bottomley@SteelEye.com> | |
5 | * | |
6 | * This is a simple module to wait until all the async scans are | |
7 | * complete. The idea is to use it in initrd/initramfs scripts. You | |
8 | * modprobe it after all the modprobes of the root SCSI drivers and it | |
9 | * will wait until they have all finished scanning their busses before | |
10 | * allowing the boot to proceed | |
11 | */ | |
12 | ||
13 | #include <linux/module.h> | |
d4d5291c | 14 | #include <linux/device.h> |
c7510859 | 15 | #include <scsi/scsi_scan.h> |
3e082a91 MW |
16 | |
17 | static int __init wait_scan_init(void) | |
18 | { | |
d4d5291c AV |
19 | /* |
20 | * First we need to wait for device probing to finish; | |
21 | * the drivers we just loaded might just still be probing | |
22 | * and might not yet have reached the scsi async scanning | |
23 | */ | |
24 | wait_for_device_probe(); | |
25 | /* | |
26 | * and then we wait for the actual asynchronous scsi scan | |
27 | * to finish. | |
28 | */ | |
3e082a91 MW |
29 | scsi_complete_async_scans(); |
30 | return 0; | |
31 | } | |
32 | ||
33 | static void __exit wait_scan_exit(void) | |
34 | { | |
35 | } | |
36 | ||
37 | MODULE_DESCRIPTION("SCSI wait for scans"); | |
38 | MODULE_AUTHOR("James Bottomley"); | |
39 | MODULE_LICENSE("GPL"); | |
40 | ||
41 | late_initcall(wait_scan_init); | |
42 | module_exit(wait_scan_exit); |