diff options
-rw-r--r-- | drivers/scsi/Kconfig | 17 | ||||
-rw-r--r-- | drivers/scsi/scsi_scan.c | 8 |
2 files changed, 24 insertions, 1 deletions
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index 5881464a938d..8442be1bb162 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig | |||
@@ -216,6 +216,23 @@ config SCSI_LOGGING | |||
216 | there should be no noticeable performance impact as long as you have | 216 | there should be no noticeable performance impact as long as you have |
217 | logging turned off. | 217 | logging turned off. |
218 | 218 | ||
219 | config SCSI_SCAN_ASYNC | ||
220 | bool "Asynchronous SCSI scanning" | ||
221 | depends on SCSI | ||
222 | help | ||
223 | The SCSI subsystem can probe for devices while the rest of the | ||
224 | system continues booting, and even probe devices on different | ||
225 | busses in parallel, leading to a significant speed-up. | ||
226 | If you have built SCSI as modules, enabling this option can | ||
227 | be a problem as the devices may not have been found by the | ||
228 | time your system expects them to have been. You can load the | ||
229 | scsi_wait_scan module to ensure that all scans have completed. | ||
230 | If you build your SCSI drivers into the kernel, then everything | ||
231 | will work fine if you say Y here. | ||
232 | |||
233 | You can override this choice by specifying scsi_mod.scan="sync" | ||
234 | or "async" on the kernel's command line. | ||
235 | |||
219 | menu "SCSI Transports" | 236 | menu "SCSI Transports" |
220 | depends on SCSI | 237 | depends on SCSI |
221 | 238 | ||
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index aa1b1e0e9d22..d91d268dd331 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c | |||
@@ -89,7 +89,13 @@ module_param_named(max_luns, max_scsi_luns, int, S_IRUGO|S_IWUSR); | |||
89 | MODULE_PARM_DESC(max_luns, | 89 | MODULE_PARM_DESC(max_luns, |
90 | "last scsi LUN (should be between 1 and 2^32-1)"); | 90 | "last scsi LUN (should be between 1 and 2^32-1)"); |
91 | 91 | ||
92 | static char scsi_scan_type[6] = "sync"; | 92 | #ifdef CONFIG_SCSI_SCAN_ASYNC |
93 | #define SCSI_SCAN_TYPE_DEFAULT "async" | ||
94 | #else | ||
95 | #define SCSI_SCAN_TYPE_DEFAULT "sync" | ||
96 | #endif | ||
97 | |||
98 | static char scsi_scan_type[6] = SCSI_SCAN_TYPE_DEFAULT; | ||
93 | 99 | ||
94 | module_param_string(scan, scsi_scan_type, sizeof(scsi_scan_type), S_IRUGO); | 100 | module_param_string(scan, scsi_scan_type, sizeof(scsi_scan_type), S_IRUGO); |
95 | MODULE_PARM_DESC(scan, "sync, async or none"); | 101 | MODULE_PARM_DESC(scan, "sync, async or none"); |