|
@@ -2351,11 +2351,12 @@ mptscsih_slave_destroy(struct scsi_device *sdev)
|
|
* mptscsih_change_queue_depth - This function will set a devices queue depth
|
|
* mptscsih_change_queue_depth - This function will set a devices queue depth
|
|
* @sdev: per scsi_device pointer
|
|
* @sdev: per scsi_device pointer
|
|
* @qdepth: requested queue depth
|
|
* @qdepth: requested queue depth
|
|
|
|
+ * @reason: calling context
|
|
*
|
|
*
|
|
* Adding support for new 'change_queue_depth' api.
|
|
* Adding support for new 'change_queue_depth' api.
|
|
*/
|
|
*/
|
|
int
|
|
int
|
|
-mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth)
|
|
|
|
|
|
+mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
|
|
{
|
|
{
|
|
MPT_SCSI_HOST *hd = shost_priv(sdev->host);
|
|
MPT_SCSI_HOST *hd = shost_priv(sdev->host);
|
|
VirtTarget *vtarget;
|
|
VirtTarget *vtarget;
|
|
@@ -2367,6 +2368,9 @@ mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth)
|
|
starget = scsi_target(sdev);
|
|
starget = scsi_target(sdev);
|
|
vtarget = starget->hostdata;
|
|
vtarget = starget->hostdata;
|
|
|
|
|
|
|
|
+ if (reason != SCSI_QDEPTH_DEFAULT)
|
|
|
|
+ return -EOPNOTSUPP;
|
|
|
|
+
|
|
if (ioc->bus_type == SPI) {
|
|
if (ioc->bus_type == SPI) {
|
|
if (!(vtarget->tflags & MPT_TARGET_FLAGS_Q_YES))
|
|
if (!(vtarget->tflags & MPT_TARGET_FLAGS_Q_YES))
|
|
max_depth = 1;
|
|
max_depth = 1;
|
|
@@ -2433,7 +2437,8 @@ mptscsih_slave_configure(struct scsi_device *sdev)
|
|
ioc->name, vtarget->negoFlags, vtarget->maxOffset,
|
|
ioc->name, vtarget->negoFlags, vtarget->maxOffset,
|
|
vtarget->minSyncFactor));
|
|
vtarget->minSyncFactor));
|
|
|
|
|
|
- mptscsih_change_queue_depth(sdev, MPT_SCSI_CMD_PER_DEV_HIGH);
|
|
|
|
|
|
+ mptscsih_change_queue_depth(sdev, MPT_SCSI_CMD_PER_DEV_HIGH,
|
|
|
|
+ SCSI_QDEPTH_DEFAULT);
|
|
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
|
|
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
|
|
"tagged %d, simple %d, ordered %d\n",
|
|
"tagged %d, simple %d, ordered %d\n",
|
|
ioc->name,sdev->tagged_supported, sdev->simple_tags,
|
|
ioc->name,sdev->tagged_supported, sdev->simple_tags,
|