diff options
author | Matthew Wilcox <matthew@wil.cx> | 2006-11-22 15:24:52 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-11-22 17:41:09 -0500 |
commit | 21db1882f79a1ad5977cae6766376a63f60ec414 (patch) | |
tree | c5e8d444c72a4e7837f6a00f8d66b3291ca0bf52 /drivers/scsi | |
parent | 902762831c0068ba0c8c8fca801e505a9881aa01 (diff) |
[SCSI] Add Kconfig option for asynchronous SCSI scanning
Without this patch, the user has to add a kernel command line parameter
to get asynchronous SCSI scanning. Now they can select the default at
compile time and still override it at boot time if they need to.
Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi')
-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"); |