[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>
This commit is contained in:
Matthew Wilcox 2006-11-22 13:24:52 -07:00 committed by James Bottomley
parent 902762831c
commit 21db1882f7
2 changed files with 24 additions and 1 deletions

View File

@ -216,6 +216,23 @@ config SCSI_LOGGING
there should be no noticeable performance impact as long as you have there should be no noticeable performance impact as long as you have
logging turned off. logging turned off.
config SCSI_SCAN_ASYNC
bool "Asynchronous SCSI scanning"
depends on SCSI
help
The SCSI subsystem can probe for devices while the rest of the
system continues booting, and even probe devices on different
busses in parallel, leading to a significant speed-up.
If you have built SCSI as modules, enabling this option can
be a problem as the devices may not have been found by the
time your system expects them to have been. You can load the
scsi_wait_scan module to ensure that all scans have completed.
If you build your SCSI drivers into the kernel, then everything
will work fine if you say Y here.
You can override this choice by specifying scsi_mod.scan="sync"
or "async" on the kernel's command line.
menu "SCSI Transports" menu "SCSI Transports"
depends on SCSI depends on SCSI

View File

@ -89,7 +89,13 @@ module_param_named(max_luns, max_scsi_luns, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(max_luns, MODULE_PARM_DESC(max_luns,
"last scsi LUN (should be between 1 and 2^32-1)"); "last scsi LUN (should be between 1 and 2^32-1)");
static char scsi_scan_type[6] = "sync"; #ifdef CONFIG_SCSI_SCAN_ASYNC
#define SCSI_SCAN_TYPE_DEFAULT "async"
#else
#define SCSI_SCAN_TYPE_DEFAULT "sync"
#endif
static char scsi_scan_type[6] = SCSI_SCAN_TYPE_DEFAULT;
module_param_string(scan, scsi_scan_type, sizeof(scsi_scan_type), S_IRUGO); module_param_string(scan, scsi_scan_type, sizeof(scsi_scan_type), S_IRUGO);
MODULE_PARM_DESC(scan, "sync, async or none"); MODULE_PARM_DESC(scan, "sync, async or none");