aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wilcox <matthew@wil.cx>2006-11-22 15:24:52 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-11-22 17:41:09 -0500
commit21db1882f79a1ad5977cae6766376a63f60ec414 (patch)
treec5e8d444c72a4e7837f6a00f8d66b3291ca0bf52
parent902762831c0068ba0c8c8fca801e505a9881aa01 (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>
-rw-r--r--drivers/scsi/Kconfig17
-rw-r--r--drivers/scsi/scsi_scan.c8
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
219config 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
219menu "SCSI Transports" 236menu "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);
89MODULE_PARM_DESC(max_luns, 89MODULE_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
92static 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
98static char scsi_scan_type[6] = SCSI_SCAN_TYPE_DEFAULT;
93 99
94module_param_string(scan, scsi_scan_type, sizeof(scsi_scan_type), S_IRUGO); 100module_param_string(scan, scsi_scan_type, sizeof(scsi_scan_type), S_IRUGO);
95MODULE_PARM_DESC(scan, "sync, async or none"); 101MODULE_PARM_DESC(scan, "sync, async or none");