aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid
diff options
context:
space:
mode:
authorMark Haverkamp <markh@linux-foundation.org>2007-01-26 12:23:32 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-01-27 10:28:14 -0500
commite37ee4bec6c6d6d67aebafeecbbb32aa33d502bc (patch)
tree8461b82913f7c11f68b0d4f112eae3105f0154ea /drivers/scsi/aacraid
parente8f32de52c0d74d397d21afc655a4e2a7dfe1f98 (diff)
[SCSI] aacraid: expanded expose physical device code (new)
Received from Mark Salyzyn, Take the expose_physicals flag and allow the user to select default (physicals available via /dev/sg), exposed (physicals available via /dev/sd for experimental reasons) and hidden (physicals blocked from all access). This expands the functionality of the previous expose_physicals insmod parameter which was added to support some experimental configurations. Signed-off-by Mark Haverkamp <markh@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aacraid')
-rw-r--r--drivers/scsi/aacraid/aachba.c4
-rw-r--r--drivers/scsi/aacraid/linit.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 971425557f74..ddb33b06e0ef 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -170,9 +170,9 @@ int acbsize = -1;
170module_param(acbsize, int, S_IRUGO|S_IWUSR); 170module_param(acbsize, int, S_IRUGO|S_IWUSR);
171MODULE_PARM_DESC(acbsize, "Request a specific adapter control block (FIB) size. Valid values are 512, 2048, 4096 and 8192. Default is to use suggestion from Firmware."); 171MODULE_PARM_DESC(acbsize, "Request a specific adapter control block (FIB) size. Valid values are 512, 2048, 4096 and 8192. Default is to use suggestion from Firmware.");
172 172
173int expose_physicals = 0; 173int expose_physicals = -1;
174module_param(expose_physicals, int, S_IRUGO|S_IWUSR); 174module_param(expose_physicals, int, S_IRUGO|S_IWUSR);
175MODULE_PARM_DESC(expose_physicals, "Expose physical components of the arrays. 0=off, 1=on"); 175MODULE_PARM_DESC(expose_physicals, "Expose physical components of the arrays. -1=protect 0=off, 1=on");
176/** 176/**
177 * aac_get_config_status - check the adapter configuration 177 * aac_get_config_status - check the adapter configuration
178 * @common: adapter to query 178 * @common: adapter to query
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
index 1326c0a1bdae..1feda449aedc 100644
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -398,11 +398,15 @@ static int aac_slave_configure(struct scsi_device *sdev)
398 sdev->skip_ms_page_3f = 1; 398 sdev->skip_ms_page_3f = 1;
399 } 399 }
400 if ((sdev->type == TYPE_DISK) && 400 if ((sdev->type == TYPE_DISK) &&
401 !expose_physicals &&
402 (sdev_channel(sdev) != CONTAINER_CHANNEL)) { 401 (sdev_channel(sdev) != CONTAINER_CHANNEL)) {
403 struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata; 402 if (expose_physicals == 0)
404 if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2)) 403 return -ENXIO;
405 sdev->no_uld_attach = 1; 404 if (expose_physicals < 0) {
405 struct aac_dev *aac =
406 (struct aac_dev *)sdev->host->hostdata;
407 if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
408 sdev->no_uld_attach = 1;
409 }
406 } 410 }
407 if (sdev->tagged_supported && (sdev->type == TYPE_DISK) && 411 if (sdev->tagged_supported && (sdev->type == TYPE_DISK) &&
408 (sdev_channel(sdev) == CONTAINER_CHANNEL)) { 412 (sdev_channel(sdev) == CONTAINER_CHANNEL)) {