Commit 5086435e authored by Don Brace's avatar Don Brace Committed by Martin K. Petersen

scsi: hpsa: correct queue depth for externals

- queue depth assignment not in correct place, had no effect.
Reviewed-by: default avatarScott Benesh <scott.benesh@microsemi.com>
Reviewed-by: default avatarScott Teel <scott.teel@microsemi.com>
Reviewed-by: default avatarKevin Barnett <kevin.barnett@microsemi.com>
Signed-off-by: default avatarDon Brace <don.brace@microsemi.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent c59d04f3
...@@ -2069,10 +2069,13 @@ static int hpsa_slave_configure(struct scsi_device *sdev) ...@@ -2069,10 +2069,13 @@ static int hpsa_slave_configure(struct scsi_device *sdev)
sd = sdev->hostdata; sd = sdev->hostdata;
sdev->no_uld_attach = !sd || !sd->expose_device; sdev->no_uld_attach = !sd || !sd->expose_device;
if (sd) if (sd) {
queue_depth = sd->queue_depth != 0 ? if (sd->external)
sd->queue_depth : sdev->host->can_queue; queue_depth = EXTERNAL_QD;
else else
queue_depth = sd->queue_depth != 0 ?
sd->queue_depth : sdev->host->can_queue;
} else
queue_depth = sdev->host->can_queue; queue_depth = sdev->host->can_queue;
scsi_change_queue_depth(sdev, queue_depth); scsi_change_queue_depth(sdev, queue_depth);
...@@ -3915,6 +3918,9 @@ static int hpsa_update_device_info(struct ctlr_info *h, ...@@ -3915,6 +3918,9 @@ static int hpsa_update_device_info(struct ctlr_info *h,
this_device->queue_depth = h->nr_cmds; this_device->queue_depth = h->nr_cmds;
} }
if (this_device->external)
this_device->queue_depth = EXTERNAL_QD;
if (is_OBDR_device) { if (is_OBDR_device) {
/* See if this is a One-Button-Disaster-Recovery device /* See if this is a One-Button-Disaster-Recovery device
* by looking for "$DR-10" at offset 43 in inquiry data. * by looking for "$DR-10" at offset 43 in inquiry data.
...@@ -4123,14 +4129,6 @@ static void hpsa_get_ioaccel_drive_info(struct ctlr_info *h, ...@@ -4123,14 +4129,6 @@ static void hpsa_get_ioaccel_drive_info(struct ctlr_info *h,
int rc; int rc;
struct ext_report_lun_entry *rle; struct ext_report_lun_entry *rle;
/*
* external targets don't support BMIC
*/
if (dev->external) {
dev->queue_depth = 7;
return;
}
rle = &rlep->LUN[rle_index]; rle = &rlep->LUN[rle_index];
dev->ioaccel_handle = rle->ioaccel_handle; dev->ioaccel_handle = rle->ioaccel_handle;
......
...@@ -57,6 +57,7 @@ struct hpsa_sas_phy { ...@@ -57,6 +57,7 @@ struct hpsa_sas_phy {
bool added_to_port; bool added_to_port;
}; };
#define EXTERNAL_QD 7
struct hpsa_scsi_dev_t { struct hpsa_scsi_dev_t {
unsigned int devtype; unsigned int devtype;
int bus, target, lun; /* as presented to the OS */ int bus, target, lun; /* as presented to the OS */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment