Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e37ee4be authored by Mark Haverkamp's avatar Mark Haverkamp Committed by James Bottomley
Browse files

[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: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent e8f32de5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -170,9 +170,9 @@ int acbsize = -1;
module_param(acbsize, int, S_IRUGO|S_IWUSR);
MODULE_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.");

int expose_physicals = 0;
int expose_physicals = -1;
module_param(expose_physicals, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(expose_physicals, "Expose physical components of the arrays. 0=off, 1=on");
MODULE_PARM_DESC(expose_physicals, "Expose physical components of the arrays. -1=protect 0=off, 1=on");
/**
 *	aac_get_config_status	-	check the adapter configuration
 *	@common: adapter to query
+8 −4
Original line number Diff line number Diff line
@@ -398,12 +398,16 @@ static int aac_slave_configure(struct scsi_device *sdev)
		sdev->skip_ms_page_3f = 1;
	}
	if ((sdev->type == TYPE_DISK) &&
			!expose_physicals &&
			(sdev_channel(sdev) != CONTAINER_CHANNEL)) {
		struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata;
		if (expose_physicals == 0)
			return -ENXIO;
		if (expose_physicals < 0) {
			struct aac_dev *aac =
				(struct aac_dev *)sdev->host->hostdata;
			if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
				sdev->no_uld_attach = 1;
		}
	}
	if (sdev->tagged_supported && (sdev->type == TYPE_DISK) &&
			(sdev_channel(sdev) == CONTAINER_CHANNEL)) {
		struct scsi_device * dev;