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

Commit 04fa2f44 authored by Kevin Barnett's avatar Kevin Barnett Committed by Martin K. Petersen
Browse files

hpsa: simplify update scsi devices



remove repeated calculation that checks for physical
or logical devices.

Reviewed-by: default avatarScott Teel <scott.teel@pmcs.com>
Reviewed-by: default avatarJustin Lindley <justin.lindley@pmcs.com>
Reviewed-by: default avatarKevin Barnett <kevin.barnett@pmcs.com>
Reviewed-by: default avatarTomas Henzl <thenzl@redhat.com>
Reviewed-by: default avatarMatthew R. Ochs <mrochs@linux.vnet.ibm.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarDon Brace <don.brace@pmcs.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 2a168208
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -3752,6 +3752,7 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
	int ncurrent = 0;
	int i, n_ext_target_devs, ndevs_to_allocate;
	int raid_ctlr_position;
	bool physical_device;
	DECLARE_BITMAP(lunzerobits, MAX_EXT_TARGETS);

	currentsd = kzalloc(sizeof(*currentsd) * HPSA_MAX_DEVICES, GFP_KERNEL);
@@ -3812,15 +3813,15 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
		int rc = 0;
		int phys_dev_index = i - (raid_ctlr_position == 0);

		physical_device = i < nphysicals + (raid_ctlr_position == 0);

		/* Figure out where the LUN ID info is coming from */
		lunaddrbytes = figure_lunaddrbytes(h, raid_ctlr_position,
			i, nphysicals, nlogicals, physdev_list, logdev_list);

		/* skip masked non-disk devices */
		if (MASKED_DEVICE(lunaddrbytes))
			if (i < nphysicals + (raid_ctlr_position == 0) &&
				(physdev_list->
				LUN[phys_dev_index].device_flags & 0x01))
		if (MASKED_DEVICE(lunaddrbytes) && physical_device &&
			(physdev_list->LUN[phys_dev_index].device_flags & 0x01))
			continue;

		/* Get device type, vendor, model, device id */
@@ -3857,10 +3858,13 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
		}

		*this_device = *tmpdevice;
		this_device->physical_device = physical_device;

		/* do not expose masked devices */
		if (MASKED_DEVICE(lunaddrbytes) &&
			i < nphysicals + (raid_ctlr_position == 0))
		/*
		 * Expose all devices except for physical devices that
		 * are masked.
		 */
		if (MASKED_DEVICE(lunaddrbytes) && this_device->physical_device)
			this_device->expose_device = 0;
		else
			this_device->expose_device = 1;
@@ -3878,7 +3882,7 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
				ncurrent++;
			break;
		case TYPE_DISK:
			if (i < nphysicals + (raid_ctlr_position == 0)) {
			if (this_device->physical_device) {
				/* The disk is in HBA mode. */
				/* Never use RAID mapper in HBA mode. */
				this_device->offload_enabled = 0;
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ struct hpsa_scsi_dev_t {
	unsigned int devtype;
	int bus, target, lun;		/* as presented to the OS */
	unsigned char scsi3addr[8];	/* as presented to the HW */
	u8 physical_device : 1;
	u8 expose_device;
#define RAID_CTLR_LUNID "\0\0\0\0\0\0\0\0"
	unsigned char device_id[16];    /* from inquiry pg. 0x83 */