All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: Christoph Hellwig <hch@lst.de>, linux-scsi@vger.kernel.org
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>,
	Robert Elliott <elliott@hp.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Bart van Assche <bvanassche@acm.org>, Jens Axboe <axboe@fb.com>,
	Kashyap Desai <kashyap.desai@avagotech.com>,
	Sreekanth Reddy <sreekanth.reddy@avagotech.com>,
	Mike Christie <michaelc@cs.wisc.edu>,
	Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	usb-storage@lists.one-eyed-alien.net
Subject: Re: [PATCH 09/11] scsi: don't set tagging state from scsi_adjust_queue_depth
Date: Tue, 04 Nov 2014 10:26:57 +0100	[thread overview]
Message-ID: <54589BE1.6070106@suse.de> (raw)
In-Reply-To: <1415087656-9491-10-git-send-email-hch@lst.de>

On 11/04/2014 08:54 AM, Christoph Hellwig wrote:
> Remove the tagged argument from scsi_adjust_queue_depth, and just let it
> handle the queue depth.  For most drivers those two are fairly separate,
> given that most modern drivers don't care about the SCSI "tagged" status
> of a command at all, and many old drivers allow queuing of multiple
> untagged commands in the driver.
> 
> Instead we start out with the ->simple_tags flag set before calling
> ->slave_configure, which is how all drivers actually looking at
> ->simple_tags except for one worke anyway.  The one other case looks
> broken, but I've kept the behavior as-is for now.
> 
> Except for that we only change ->simple_tags from the ->change_queue_type,
> and when rejecting a tag message in a single driver, so keeping this
> churn out of scsi_adjust_queue_depth is a clear win.
> 
> Now that the usage of scsi_adjust_queue_depth is more obvious we can
> also remove all the trivial instances in ->slave_alloc or ->slave_configure
> that just set it to the cmd_per_lun default.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  Documentation/scsi/scsi_mid_low_api.txt   | 12 ++++------
>  drivers/ata/libata-scsi.c                 |  4 ++--
>  drivers/infiniband/ulp/srp/ib_srp.c       |  2 +-
>  drivers/message/fusion/mptscsih.c         |  2 +-
>  drivers/s390/scsi/zfcp_scsi.c             |  8 +++----
>  drivers/scsi/3w-9xxx.c                    |  2 +-
>  drivers/scsi/3w-sas.c                     |  2 +-
>  drivers/scsi/3w-xxxx.c                    |  2 +-
>  drivers/scsi/53c700.c                     | 17 ++++++-------
>  drivers/scsi/BusLogic.c                   |  4 ++--
>  drivers/scsi/aacraid/linit.c              |  9 ++++---
>  drivers/scsi/advansys.c                   |  7 ++----
>  drivers/scsi/aic7xxx/aic79xx_osm.c        |  7 ++----
>  drivers/scsi/aic7xxx/aic7xxx_osm.c        |  8 ++-----
>  drivers/scsi/arcmsr/arcmsr_hba.c          |  2 +-
>  drivers/scsi/bfa/bfad_im.c                |  3 +--
>  drivers/scsi/csiostor/csio_scsi.c         |  2 +-
>  drivers/scsi/dpt_i2o.c                    |  4 +---
>  drivers/scsi/eata.c                       |  8 +++----
>  drivers/scsi/esas2r/esas2r.h              |  3 ---
>  drivers/scsi/esas2r/esas2r_main.c         | 29 +---------------------
>  drivers/scsi/esp_scsi.c                   | 17 ++-----------
>  drivers/scsi/fnic/fnic_main.c             |  2 +-
>  drivers/scsi/gdth.c                       |  1 -
>  drivers/scsi/hpsa.c                       |  2 +-
>  drivers/scsi/hptiop.c                     |  2 +-
>  drivers/scsi/ibmvscsi/ibmvfc.c            |  8 +------
>  drivers/scsi/ibmvscsi/ibmvscsi.c          |  3 +--
>  drivers/scsi/ipr.c                        |  8 +++----
>  drivers/scsi/ips.c                        |  2 +-
>  drivers/scsi/libfc/fc_fcp.c               |  6 ++---
>  drivers/scsi/libiscsi.c                   |  4 ++--
>  drivers/scsi/libsas/sas_scsi_host.c       | 20 +++++-----------
>  drivers/scsi/lpfc/lpfc_scsi.c             |  4 ++--
>  drivers/scsi/megaraid/megaraid_mbox.c     |  2 +-
>  drivers/scsi/megaraid/megaraid_sas_base.c |  3 +--
>  drivers/scsi/mpt2sas/mpt2sas_scsih.c      |  2 +-
>  drivers/scsi/mpt3sas/mpt3sas_scsih.c      |  2 +-
>  drivers/scsi/ncr53c8xx.c                  |  5 +---
>  drivers/scsi/pmcraid.c                    | 40 ++++++-------------------------
>  drivers/scsi/qla1280.c                    |  5 ++--
>  drivers/scsi/qla2xxx/qla_os.c             |  6 ++---
>  drivers/scsi/qla4xxx/ql4_os.c             |  2 +-
>  drivers/scsi/scsi.c                       | 25 ++++---------------
>  drivers/scsi/scsi_debug.c                 |  7 ++----
>  drivers/scsi/scsi_scan.c                  |  6 +++--
>  drivers/scsi/stex.c                       |  2 --
>  drivers/scsi/storvsc_drv.c                |  3 +--
>  drivers/scsi/sym53c8xx_2/sym_glue.c       |  4 +---
>  drivers/scsi/tmscsim.c                    |  9 ++++++-
>  drivers/scsi/u14-34f.c                    | 10 ++++----
>  drivers/scsi/ufs/ufshcd.c                 |  4 ++--
>  drivers/scsi/virtio_scsi.c                |  4 +---
>  drivers/scsi/vmw_pvscsi.c                 |  2 +-
>  drivers/target/loopback/tcm_loop.c        | 18 ++------------
>  drivers/usb/storage/uas.c                 |  2 +-
>  include/scsi/scsi_device.h                |  2 +-
>  57 files changed, 120 insertions(+), 261 deletions(-)
> 
> diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt
> index a671942..bee7d86 100644
> --- a/Documentation/scsi/scsi_mid_low_api.txt
> +++ b/Documentation/scsi/scsi_mid_low_api.txt
> @@ -271,9 +271,9 @@ init_this_scsi_driver() ----+
>                        slave_destroy() ***
>  ------------------------------------------------------------
>  
> -The mid level invokes scsi_adjust_queue_depth() with tagged queuing off and
> -"cmd_per_lun" for that host as the queue length. These settings can be
> -overridden by a slave_configure() supplied by the LLD.
> +The mid level invokes scsi_adjust_queue_depth() with "cmd_per_lun" for that
> +host as the queue length. These settings can be overridden by a
> +slave_configure() supplied by the LLD.
>  
>  *** For scsi devices that the mid level tries to scan but do not
>      respond, a slave_alloc(), slave_destroy() pair is called.
> @@ -438,9 +438,6 @@ int scsi_add_host(struct Scsi_Host *shost, struct device * dev)
>  /**
>   * scsi_adjust_queue_depth - allow LLD to change queue depth on a SCSI device
>   * @sdev:       pointer to SCSI device to change queue depth on
> - * @tagged:     0 - no tagged queuing
> - *              MSG_SIMPLE_TAG - simple tagged queuing
> - *              MSG_ORDERED_TAG - ordered tagged queuing
>   * @tags        Number of tags allowed if tagged queuing enabled,
>   *              or number of commands the LLD can queue up
>   *              in non-tagged mode (as per cmd_per_lun).
> @@ -456,8 +453,7 @@ int scsi_add_host(struct Scsi_Host *shost, struct device * dev)
>   *      Defined in: drivers/scsi/scsi.c [see source code for more notes]
>   *
>   **/
> -void scsi_adjust_queue_depth(struct scsi_device * sdev, int tagged, 
> -                             int tags)
> +void scsi_adjust_queue_depth(struct scsi_device *sdev, int tags)
>  
>  
>  /**
> diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
> index 0586f66..c8bb6ab 100644
> --- a/drivers/ata/libata-scsi.c
> +++ b/drivers/ata/libata-scsi.c
> @@ -1164,7 +1164,7 @@ static int ata_scsi_dev_config(struct scsi_device *sdev,
>  
>  		depth = min(sdev->host->can_queue, ata_id_queue_depth(dev->id));
>  		depth = min(ATA_MAX_QUEUE - 1, depth);
> -		scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  	}
>  
>  	blk_queue_flush_queueable(q, false);
> @@ -1282,7 +1282,7 @@ int __ata_change_queue_depth(struct ata_port *ap, struct scsi_device *sdev,
>  	if (sdev->queue_depth == queue_depth)
>  		return -EINVAL;
>  
> -	scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, queue_depth);
> +	scsi_adjust_queue_depth(sdev, queue_depth);
>  	return queue_depth;
>  }
>  
> diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
> index 51670d7..023a66f 100644
> --- a/drivers/infiniband/ulp/srp/ib_srp.c
> +++ b/drivers/infiniband/ulp/srp/ib_srp.c
> @@ -2278,7 +2278,7 @@ srp_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
>  			max_depth = 1;
>  		if (qdepth > max_depth)
>  			qdepth = max_depth;
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +		scsi_adjust_queue_depth(sdev, qdepth);
>  	} else if (reason == SCSI_QDEPTH_QFULL)
>  		scsi_track_queue_full(sdev, qdepth);
>  	else
> diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
> index c0d84a0..dee06d6 100644
> --- a/drivers/message/fusion/mptscsih.c
> +++ b/drivers/message/fusion/mptscsih.c
> @@ -2347,7 +2347,7 @@ mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
>  	if (qdepth > max_depth)
>  		qdepth = max_depth;
>  
> -	scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  	return sdev->queue_depth;
>  }
>  
> diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
> index 7b35364..b5dfa51 100644
> --- a/drivers/s390/scsi/zfcp_scsi.c
> +++ b/drivers/s390/scsi/zfcp_scsi.c
> @@ -37,13 +37,13 @@ static int zfcp_scsi_change_queue_depth(struct scsi_device *sdev, int depth,
>  {
>  	switch (reason) {
>  	case SCSI_QDEPTH_DEFAULT:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  		break;
>  	case SCSI_QDEPTH_QFULL:
>  		scsi_track_queue_full(sdev, depth);
>  		break;
>  	case SCSI_QDEPTH_RAMP_UP:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  		break;
>  	default:
>  		return -EOPNOTSUPP;
> @@ -66,9 +66,7 @@ static void zfcp_scsi_slave_destroy(struct scsi_device *sdev)
>  static int zfcp_scsi_slave_configure(struct scsi_device *sdp)
>  {
>  	if (sdp->tagged_supported)
> -		scsi_adjust_queue_depth(sdp, MSG_SIMPLE_TAG, default_depth);
> -	else
> -		scsi_adjust_queue_depth(sdp, 0, 1);
> +		scsi_adjust_queue_depth(sdp, default_depth);
>  	return 0;
>  }
>  
> diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
> index 0a73253..02021f5 100644
> --- a/drivers/scsi/3w-9xxx.c
> +++ b/drivers/scsi/3w-9xxx.c
> @@ -198,7 +198,7 @@ static int twa_change_queue_depth(struct scsi_device *sdev, int queue_depth,
>  
>  	if (queue_depth > TW_Q_LENGTH-2)
>  		queue_depth = TW_Q_LENGTH-2;
> -	scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, queue_depth);
> +	scsi_adjust_queue_depth(sdev, queue_depth);
>  	return queue_depth;
>  } /* End twa_change_queue_depth() */
>  
> diff --git a/drivers/scsi/3w-sas.c b/drivers/scsi/3w-sas.c
> index 6da6cec..ac0c254 100644
> --- a/drivers/scsi/3w-sas.c
> +++ b/drivers/scsi/3w-sas.c
> @@ -200,7 +200,7 @@ static int twl_change_queue_depth(struct scsi_device *sdev, int queue_depth,
>  
>  	if (queue_depth > TW_Q_LENGTH-2)
>  		queue_depth = TW_Q_LENGTH-2;
> -	scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, queue_depth);
> +	scsi_adjust_queue_depth(sdev, queue_depth);
>  	return queue_depth;
>  } /* End twl_change_queue_depth() */
>  
> diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c
> index 752624e..1ec9ad9 100644
> --- a/drivers/scsi/3w-xxxx.c
> +++ b/drivers/scsi/3w-xxxx.c
> @@ -532,7 +532,7 @@ static int tw_change_queue_depth(struct scsi_device *sdev, int queue_depth,
>  
>  	if (queue_depth > TW_Q_LENGTH-2)
>  		queue_depth = TW_Q_LENGTH-2;
> -	scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, queue_depth);
> +	scsi_adjust_queue_depth(sdev, queue_depth);
>  	return queue_depth;
>  } /* End tw_change_queue_depth() */
>  
> diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c
> index 497cbb1..d7557b9 100644
> --- a/drivers/scsi/53c700.c
> +++ b/drivers/scsi/53c700.c
> @@ -902,8 +902,10 @@ process_message(struct Scsi_Host *host,	struct NCR_700_Host_Parameters *hostdata
>  			/* we're done negotiating */
>  			NCR_700_set_tag_neg_state(SCp->device, NCR_700_FINISHED_TAG_NEGOTIATION);
>  			hostdata->tag_negotiated &= ~(1<<scmd_id(SCp));
> +
>  			SCp->device->tagged_supported = 0;
> -			scsi_adjust_queue_depth(SCp->device, 0, host->cmd_per_lun);
> +			scsi_adjust_queue_depth(SCp->device, host->cmd_per_lun);
> +			scsi_set_tag_type(SCp->device, 0);
>  		} else {
>  			shost_printk(KERN_WARNING, host,
>  				"(%d:%d) Unexpected REJECT Message %s\n",
> @@ -2050,12 +2052,10 @@ NCR_700_slave_configure(struct scsi_device *SDp)
>  
>  	/* to do here: allocate memory; build a queue_full list */
>  	if(SDp->tagged_supported) {
> -		scsi_adjust_queue_depth(SDp, MSG_ORDERED_TAG, NCR_700_DEFAULT_TAGS);
> +		scsi_adjust_queue_depth(SDp, NCR_700_DEFAULT_TAGS);
>  		NCR_700_set_tag_neg_state(SDp, NCR_700_START_TAG_NEGOTIATION);
> -	} else {
> -		/* initialise to default depth */
> -		scsi_adjust_queue_depth(SDp, 0, SDp->host->cmd_per_lun);
>  	}
> +
>  	if(hostdata->fast) {
>  		/* Find the correct offset and period via domain validation */
>  		if (!spi_initial_dv(SDp->sdev_target))
> @@ -2083,7 +2083,7 @@ NCR_700_change_queue_depth(struct scsi_device *SDp, int depth, int reason)
>  	if (depth > NCR_700_MAX_TAGS)
>  		depth = NCR_700_MAX_TAGS;
>  
> -	scsi_adjust_queue_depth(SDp, scsi_get_tag_type(SDp), depth);
> +	scsi_adjust_queue_depth(SDp, depth);
>  	return depth;
>  }
>  
> @@ -2101,15 +2101,16 @@ static int NCR_700_change_queue_type(struct scsi_device *SDp, int tag_type)
>  	if (change_tag)
>  		scsi_target_quiesce(SDp->sdev_target);
>  
> +	scsi_set_tag_type(SDp, tag_type);
>  	if (!tag_type) {
>  		/* shift back to the default unqueued number of commands
>  		 * (the user can still raise this) */
> -		scsi_adjust_queue_depth(SDp, 0, SDp->host->cmd_per_lun);
> +		scsi_adjust_queue_depth(SDp, SDp->host->cmd_per_lun);
>  		hostdata->tag_negotiated &= ~(1 << sdev_id(SDp));
>  	} else {
>  		/* Here, we cleared the negotiation flag above, so this
>  		 * will force the driver to renegotiate */
> -		scsi_adjust_queue_depth(SDp, tag_type, SDp->queue_depth);
> +		scsi_adjust_queue_depth(SDp, SDp->queue_depth);
>  		if (change_tag)
>  			NCR_700_set_tag_neg_state(SDp, NCR_700_START_TAG_NEGOTIATION);
>  	}
> diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c
> index 64c7514..5aa476b 100644
> --- a/drivers/scsi/BusLogic.c
> +++ b/drivers/scsi/BusLogic.c
> @@ -2327,12 +2327,12 @@ static int blogic_slaveconfig(struct scsi_device *dev)
>  		if (qdepth == 0)
>  			qdepth = BLOGIC_MAX_AUTO_TAG_DEPTH;
>  		adapter->qdepth[tgt_id] = qdepth;
> -		scsi_adjust_queue_depth(dev, MSG_SIMPLE_TAG, qdepth);
> +		scsi_adjust_queue_depth(dev, qdepth);
>  	} else {
>  		adapter->tagq_ok &= ~(1 << tgt_id);
>  		qdepth = adapter->untag_qdepth;
>  		adapter->qdepth[tgt_id] = qdepth;
> -		scsi_adjust_queue_depth(dev, 0, qdepth);
> +		scsi_adjust_queue_depth(dev, qdepth);
>  	}
>  	qdepth = 0;
>  	for (tgt_id = 0; tgt_id < adapter->maxdev; tgt_id++)
> diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
> index a759cb2..596c2f4 100644
> --- a/drivers/scsi/aacraid/linit.c
> +++ b/drivers/scsi/aacraid/linit.c
> @@ -462,9 +462,8 @@ static int aac_slave_configure(struct scsi_device *sdev)
>  			depth = 256;
>  		else if (depth < 2)
>  			depth = 2;
> -		scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, depth);
> -	} else
> -		scsi_adjust_queue_depth(sdev, 0, 1);
> +		scsi_adjust_queue_depth(sdev, depth);
> +	}
>  
>  	return 0;
>  }
Why did you omit the 'else' branch?
cmd_per_lun is set to 256 for aacraid AFAICS ...

> @@ -504,9 +503,9 @@ static int aac_change_queue_depth(struct scsi_device *sdev, int depth,
>  			depth = 256;
>  		else if (depth < 2)
>  			depth = 2;
> -		scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  	} else
> -		scsi_adjust_queue_depth(sdev, 0, 1);
> +		scsi_adjust_queue_depth(sdev, 1);
>  	return sdev->queue_depth;
>  }
>  
> diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
> index 43761c1..ae4840e 100644
> --- a/drivers/scsi/advansys.c
> +++ b/drivers/scsi/advansys.c
> @@ -7706,7 +7706,7 @@ advansys_narrow_slave_configure(struct scsi_device *sdev, ASC_DVC_VAR *asc_dvc)
>  				asc_dvc->cfg->can_tagged_qng |= tid_bit;
>  				asc_dvc->use_tagged_qng |= tid_bit;
>  			}
> -			scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG,
> +			scsi_adjust_queue_depth(sdev, 
>  						asc_dvc->max_dvc_qng[sdev->id]);
>  		}
>  	} else {
> @@ -7714,7 +7714,6 @@ advansys_narrow_slave_configure(struct scsi_device *sdev, ASC_DVC_VAR *asc_dvc)
>  			asc_dvc->cfg->can_tagged_qng &= ~tid_bit;
>  			asc_dvc->use_tagged_qng &= ~tid_bit;
>  		}
> -		scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
>  	}
>  
>  	if ((sdev->lun == 0) &&
> @@ -7849,10 +7848,8 @@ advansys_wide_slave_configure(struct scsi_device *sdev, ADV_DVC_VAR *adv_dvc)
>  	}
>  
>  	if ((adv_dvc->tagqng_able & tidmask) && sdev->tagged_supported) {
> -		scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG,
> +		scsi_adjust_queue_depth(sdev,
>  					adv_dvc->max_dvc_qng);
> -	} else {
> -		scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
>  	}
>  }
>  
> diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
> index 9fd6b56..80cb4fd 100644
> --- a/drivers/scsi/aic7xxx/aic79xx_osm.c
> +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
> @@ -1469,11 +1469,8 @@ ahd_platform_set_tags(struct ahd_softc *ahd, struct scsi_device *sdev,
>  
>  	switch ((dev->flags & (AHD_DEV_Q_BASIC|AHD_DEV_Q_TAGGED))) {
>  	case AHD_DEV_Q_BASIC:
> -		scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TASK,
> -				dev->openings + dev->active);
> -		break;
>  	case AHD_DEV_Q_TAGGED:
> -		scsi_adjust_queue_depth(sdev, MSG_ORDERED_TASK,
> +		scsi_adjust_queue_depth(sdev,
>  				dev->openings + dev->active);
>  		break;
>  	default:
> @@ -1483,7 +1480,7 @@ ahd_platform_set_tags(struct ahd_softc *ahd, struct scsi_device *sdev,
>  		 * serially on the controller/device.  This should
>  		 * remove some latency.
>  		 */
> -		scsi_adjust_queue_depth(sdev, 0, 1);
> +		scsi_adjust_queue_depth(sdev, 1);
>  		break;
>  	}
>  }
> diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c
> index f18b6d6..a6a27d5 100644
> --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c
> +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c
> @@ -1335,13 +1335,9 @@ ahc_platform_set_tags(struct ahc_softc *ahc, struct scsi_device *sdev,
>  	}
>  	switch ((dev->flags & (AHC_DEV_Q_BASIC|AHC_DEV_Q_TAGGED))) {
>  	case AHC_DEV_Q_BASIC:
> -		scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TASK,
> -				dev->openings + dev->active);
> -		break;
>  	case AHC_DEV_Q_TAGGED:
> -		scsi_adjust_queue_depth(sdev, MSG_ORDERED_TASK,
> +		scsi_adjust_queue_depth(sdev,
>  				dev->openings + dev->active);
> -		break;
>  	default:
>  		/*
>  		 * We allow the OS to queue 2 untagged transactions to
> @@ -1349,7 +1345,7 @@ ahc_platform_set_tags(struct ahc_softc *ahc, struct scsi_device *sdev,
>  		 * serially on the controller/device.  This should
>  		 * remove some latency.
>  		 */
> -		scsi_adjust_queue_depth(sdev, 0, 2);
> +		scsi_adjust_queue_depth(sdev, 2);
>  		break;
>  	}
>  }
Hmm. This is actually wrong; it should be set to '1'.
'2' is a left-over from the (long since removed) internal queueing
within the aic7xxx driver.

> diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
> index 0b44fb5..209f771 100644
> --- a/drivers/scsi/arcmsr/arcmsr_hba.c
> +++ b/drivers/scsi/arcmsr/arcmsr_hba.c
> @@ -122,7 +122,7 @@ static int arcmsr_adjust_disk_queue_depth(struct scsi_device *sdev,
>  
>  	if (queue_depth > ARCMSR_MAX_CMD_PERLUN)
>  		queue_depth = ARCMSR_MAX_CMD_PERLUN;
> -	scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, queue_depth);
> +	scsi_adjust_queue_depth(sdev, queue_depth);
>  	return queue_depth;
>  }
>  
> diff --git a/drivers/scsi/bfa/bfad_im.c b/drivers/scsi/bfa/bfad_im.c
> index d8e43c8..87b09cd2 100644
> --- a/drivers/scsi/bfa/bfad_im.c
> +++ b/drivers/scsi/bfa/bfad_im.c
> @@ -776,7 +776,7 @@ bfad_thread_workq(struct bfad_s *bfad)
>  static int
>  bfad_im_slave_configure(struct scsi_device *sdev)
>  {
> -	scsi_adjust_queue_depth(sdev, 0, bfa_lun_queue_depth);
> +	scsi_adjust_queue_depth(sdev, bfa_lun_queue_depth);
>  	return 0;
>  }
>  
> @@ -867,7 +867,6 @@ bfad_ramp_up_qdepth(struct bfad_itnim_s *itnim, struct scsi_device *sdev)
>  				if (tmp_sdev->id != sdev->id)
>  					continue;
>  				scsi_adjust_queue_depth(tmp_sdev,
> -					MSG_SIMPLE_TAG,
>  					tmp_sdev->queue_depth + 1);
>  
>  				itnim->last_ramp_up_time = jiffies;
> diff --git a/drivers/scsi/csiostor/csio_scsi.c b/drivers/scsi/csiostor/csio_scsi.c
> index f73155d..44a8cc5 100644
> --- a/drivers/scsi/csiostor/csio_scsi.c
> +++ b/drivers/scsi/csiostor/csio_scsi.c
> @@ -2241,7 +2241,7 @@ csio_slave_alloc(struct scsi_device *sdev)
>  static int
>  csio_slave_configure(struct scsi_device *sdev)
>  {
> -	scsi_adjust_queue_depth(sdev, 0, csio_lun_qdepth);
> +	scsi_adjust_queue_depth(sdev, csio_lun_qdepth);
>  	return 0;
>  }
>  
> diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
> index 072f0ec..1af8d54 100644
> --- a/drivers/scsi/dpt_i2o.c
> +++ b/drivers/scsi/dpt_i2o.c
> @@ -415,10 +415,8 @@ static int adpt_slave_configure(struct scsi_device * device)
>  	pHba = (adpt_hba *) host->hostdata[0];
>  
>  	if (host->can_queue && device->tagged_supported) {
> -		scsi_adjust_queue_depth(device, MSG_SIMPLE_TAG,
> +		scsi_adjust_queue_depth(device,
>  				host->can_queue - 1);
> -	} else {
> -		scsi_adjust_queue_depth(device, 0, 1);
>  	}
>  	return 0;
>  }
> diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c
> index 943ad3a..bc0f918 100644
> --- a/drivers/scsi/eata.c
> +++ b/drivers/scsi/eata.c
> @@ -946,20 +946,18 @@ static int eata2x_slave_configure(struct scsi_device *dev)
>  
>  	if (TLDEV(dev->type) && dev->tagged_supported) {
>  		if (tag_mode == TAG_SIMPLE) {
> -			scsi_adjust_queue_depth(dev, MSG_SIMPLE_TAG, tqd);
>  			tag_suffix = ", simple tags";
>  		} else if (tag_mode == TAG_ORDERED) {
> -			scsi_adjust_queue_depth(dev, MSG_ORDERED_TAG, tqd);
>  			tag_suffix = ", ordered tags";
>  		} else {
> -			scsi_adjust_queue_depth(dev, 0, tqd);
>  			tag_suffix = ", no tags";
>  		}
> +		scsi_adjust_queue_depth(dev, tqd);
>  	} else if (TLDEV(dev->type) && linked_comm) {
> -		scsi_adjust_queue_depth(dev, 0, tqd);
> +		scsi_adjust_queue_depth(dev, tqd);
>  		tag_suffix = ", untagged";
>  	} else {
> -		scsi_adjust_queue_depth(dev, 0, utqd);
> +		scsi_adjust_queue_depth(dev, utqd);
>  		tag_suffix = "";
>  	}
>  
> diff --git a/drivers/scsi/esas2r/esas2r.h b/drivers/scsi/esas2r/esas2r.h
> index 20ab211..1941d83 100644
> --- a/drivers/scsi/esas2r/esas2r.h
> +++ b/drivers/scsi/esas2r/esas2r.h
> @@ -972,9 +972,6 @@ u8 handle_hba_ioctl(struct esas2r_adapter *a,
>  		    struct atto_ioctl *ioctl_hba);
>  int esas2r_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd);
>  int esas2r_show_info(struct seq_file *m, struct Scsi_Host *sh);
> -int esas2r_slave_alloc(struct scsi_device *dev);
> -int esas2r_slave_configure(struct scsi_device *dev);
> -void esas2r_slave_destroy(struct scsi_device *dev);
>  int esas2r_change_queue_depth(struct scsi_device *dev, int depth, int reason);
>  long esas2r_proc_ioctl(struct file *fp, unsigned int cmd, unsigned long arg);
>  
> diff --git a/drivers/scsi/esas2r/esas2r_main.c b/drivers/scsi/esas2r/esas2r_main.c
> index a020b09..30fce64 100644
> --- a/drivers/scsi/esas2r/esas2r_main.c
> +++ b/drivers/scsi/esas2r/esas2r_main.c
> @@ -254,9 +254,6 @@ static struct scsi_host_template driver_template = {
>  	.use_clustering			= ENABLE_CLUSTERING,
>  	.emulated			= 0,
>  	.proc_name			= ESAS2R_DRVR_NAME,
> -	.slave_configure		= esas2r_slave_configure,
> -	.slave_alloc			= esas2r_slave_alloc,
> -	.slave_destroy			= esas2r_slave_destroy,
>  	.change_queue_depth		= esas2r_change_queue_depth,
>  	.change_queue_type		= scsi_change_queue_type,
>  	.max_sectors			= 0xFFFF,
> @@ -1264,35 +1261,11 @@ int esas2r_change_queue_depth(struct scsi_device *dev, int depth, int reason)
>  {
>  	esas2r_log(ESAS2R_LOG_INFO, "change_queue_depth %p, %d", dev, depth);
>  
> -	scsi_adjust_queue_depth(dev, scsi_get_tag_type(dev), depth);
> +	scsi_adjust_queue_depth(dev, depth);
>  
>  	return dev->queue_depth;
>  }
>  
> -int esas2r_slave_alloc(struct scsi_device *dev)
> -{
> -	return 0;
> -}
> -
> -int esas2r_slave_configure(struct scsi_device *dev)
> -{
> -	esas2r_log_dev(ESAS2R_LOG_INFO, &(dev->sdev_gendev),
> -		       "esas2r_slave_configure()");
> -
> -	if (dev->tagged_supported)
> -		scsi_adjust_queue_depth(dev, MSG_SIMPLE_TAG, cmd_per_lun);
> -	else
> -		scsi_adjust_queue_depth(dev, 0, cmd_per_lun);
> -
> -	return 0;
> -}
> -
> -void esas2r_slave_destroy(struct scsi_device *dev)
> -{
> -	esas2r_log_dev(ESAS2R_LOG_INFO, &(dev->sdev_gendev),
> -		       "esas2r_slave_destroy()");
> -}
> -
>  void esas2r_log_request_failure(struct esas2r_adapter *a,
>  				struct esas2r_request *rq)
>  {
> diff --git a/drivers/scsi/esp_scsi.c b/drivers/scsi/esp_scsi.c
> index 66b6ce1..38c23e0 100644
> --- a/drivers/scsi/esp_scsi.c
> +++ b/drivers/scsi/esp_scsi.c
> @@ -2402,27 +2402,14 @@ static int esp_slave_configure(struct scsi_device *dev)
>  {
>  	struct esp *esp = shost_priv(dev->host);
>  	struct esp_target_data *tp = &esp->target[dev->id];
> -	int goal_tags, queue_depth;
> -
> -	goal_tags = 0;
>  
>  	if (dev->tagged_supported) {
>  		/* XXX make this configurable somehow XXX */
> -		goal_tags = ESP_DEFAULT_TAGS;
> +		int goal_tags = min(ESP_DEFAULT_TAGS, ESP_MAX_TAG);
>  
> -		if (goal_tags > ESP_MAX_TAG)
> -			goal_tags = ESP_MAX_TAG;
> +		scsi_adjust_queue_depth(dev, goal_tags);
>  	}
>  
> -	queue_depth = goal_tags;
> -	if (queue_depth < dev->host->cmd_per_lun)
> -		queue_depth = dev->host->cmd_per_lun;
> -
> -	if (goal_tags) {
> -		scsi_adjust_queue_depth(dev, MSG_ORDERED_TAG, queue_depth);
> -	} else {
> -		scsi_adjust_queue_depth(dev, 0, queue_depth);
> -	}
>  	tp->flags |= ESP_TGT_DISCONNECT;
>  
>  	if (!spi_initial_dv(dev->sdev_target))
> diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c
> index 2a6c98b..0f29e3f 100644
> --- a/drivers/scsi/fnic/fnic_main.c
> +++ b/drivers/scsi/fnic/fnic_main.c
> @@ -100,7 +100,7 @@ static int fnic_slave_alloc(struct scsi_device *sdev)
>  	if (!rport || fc_remote_port_chkready(rport))
>  		return -ENXIO;
>  
> -	scsi_adjust_queue_depth(sdev, 0, fnic_max_qdepth);
> +	scsi_adjust_queue_depth(sdev, fnic_max_qdepth);
>  	return 0;
>  }
>  
> diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
> index 0f1ae13..4ebbeae 100644
> --- a/drivers/scsi/gdth.c
> +++ b/drivers/scsi/gdth.c
> @@ -4661,7 +4661,6 @@ static void gdth_flush(gdth_ha_str *ha)
>  /* configure lun */
>  static int gdth_slave_configure(struct scsi_device *sdev)
>  {
> -    scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
>      sdev->skip_ms_page_3f = 1;
>      sdev->skip_ms_page_8 = 1;
>      return 0;
> diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
> index cef5d49..18ea2e1 100644
> --- a/drivers/scsi/hpsa.c
> +++ b/drivers/scsi/hpsa.c
> @@ -4165,7 +4165,7 @@ static int hpsa_change_queue_depth(struct scsi_device *sdev,
>  	else
>  		if (qdepth > h->nr_cmds)
>  			qdepth = h->nr_cmds;
> -	scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  	return sdev->queue_depth;
>  }
>  
> diff --git a/drivers/scsi/hptiop.c b/drivers/scsi/hptiop.c
> index dedb62c..1518931 100644
> --- a/drivers/scsi/hptiop.c
> +++ b/drivers/scsi/hptiop.c
> @@ -1127,7 +1127,7 @@ static int hptiop_adjust_disk_queue_depth(struct scsi_device *sdev,
>  
>  	if (queue_depth > hba->max_requests)
>  		queue_depth = hba->max_requests;
> -	scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, queue_depth);
> +	scsi_adjust_queue_depth(sdev, queue_depth);
>  	return queue_depth;
>  }
>  
> diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
> index 4723d89..147b80e 100644
> --- a/drivers/scsi/ibmvscsi/ibmvfc.c
> +++ b/drivers/scsi/ibmvscsi/ibmvfc.c
> @@ -2887,12 +2887,6 @@ static int ibmvfc_slave_configure(struct scsi_device *sdev)
>  	spin_lock_irqsave(shost->host_lock, flags);
>  	if (sdev->type == TYPE_DISK)
>  		sdev->allow_restart = 1;
> -
> -	if (sdev->tagged_supported)
> -		scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG,
> -				sdev->queue_depth);
> -	else
> -		scsi_adjust_queue_depth(sdev, 0, sdev->queue_depth);
>  	spin_unlock_irqrestore(shost->host_lock, flags);
>  	return 0;
>  }
> @@ -2915,7 +2909,7 @@ static int ibmvfc_change_queue_depth(struct scsi_device *sdev, int qdepth,
>  	if (qdepth > IBMVFC_MAX_CMDS_PER_LUN)
>  		qdepth = IBMVFC_MAX_CMDS_PER_LUN;
>  
> -	scsi_adjust_queue_depth(sdev, 0, qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  	return sdev->queue_depth;
>  }
>  
> diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
> index 7b23f21..e8c3cdf 100644
> --- a/drivers/scsi/ibmvscsi/ibmvscsi.c
> +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
> @@ -1929,7 +1929,6 @@ static int ibmvscsi_slave_configure(struct scsi_device *sdev)
>  		blk_queue_rq_timeout(sdev->request_queue, 120 * HZ);
>  	}
>  	spin_unlock_irqrestore(shost->host_lock, lock_flags);
> -	scsi_adjust_queue_depth(sdev, 0, shost->cmd_per_lun);
>  	return 0;
>  }
>  
> @@ -1951,7 +1950,7 @@ static int ibmvscsi_change_queue_depth(struct scsi_device *sdev, int qdepth,
>  	if (qdepth > IBMVSCSI_MAX_CMDS_PER_LUN)
>  		qdepth = IBMVSCSI_MAX_CMDS_PER_LUN;
>  
> -	scsi_adjust_queue_depth(sdev, 0, qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  	return sdev->queue_depth;
>  }
>  
> diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
> index aa7359e..50285782 100644
> --- a/drivers/scsi/ipr.c
> +++ b/drivers/scsi/ipr.c
> @@ -4348,7 +4348,7 @@ static int ipr_change_queue_depth(struct scsi_device *sdev, int qdepth,
>  		qdepth = IPR_MAX_CMD_PER_ATA_LUN;
>  	spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
>  
> -	scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  	return sdev->queue_depth;
>  }
>  
> @@ -4755,10 +4755,10 @@ static int ipr_slave_configure(struct scsi_device *sdev)
>  		spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
>  
>  		if (ap) {
> -			scsi_adjust_queue_depth(sdev, 0, IPR_MAX_CMD_PER_ATA_LUN);
> +			scsi_adjust_queue_depth(sdev, IPR_MAX_CMD_PER_ATA_LUN);
>  			ata_sas_slave_configure(sdev, ap);
> -		} else
> -			scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
> +		}
> +
>  		if (ioa_cfg->sis64)
>  			sdev_printk(KERN_INFO, sdev, "Resource path: %s\n",
>  				    ipr_format_res_path(ioa_cfg,
> diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c
> index e5afc38..454741a 100644
> --- a/drivers/scsi/ips.c
> +++ b/drivers/scsi/ips.c
> @@ -1210,7 +1210,7 @@ ips_slave_configure(struct scsi_device * SDptr)
>  		min = ha->max_cmds / 2;
>  		if (ha->enq->ucLogDriveCount <= 2)
>  			min = ha->max_cmds - 1;
> -		scsi_adjust_queue_depth(SDptr, MSG_ORDERED_TAG, min);
> +		scsi_adjust_queue_depth(SDptr, min);
>  	}
>  
>  	SDptr->skip_ms_page_8 = 1;
> diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c
> index d4bb642..bf954ee 100644
> --- a/drivers/scsi/libfc/fc_fcp.c
> +++ b/drivers/scsi/libfc/fc_fcp.c
> @@ -2160,7 +2160,7 @@ int fc_slave_alloc(struct scsi_device *sdev)
>  	if (!rport || fc_remote_port_chkready(rport))
>  		return -ENXIO;
>  
> -	scsi_adjust_queue_depth(sdev, 0, FC_FCP_DFLT_QUEUE_DEPTH);
> +	scsi_adjust_queue_depth(sdev, FC_FCP_DFLT_QUEUE_DEPTH);
>  	return 0;
>  }
>  EXPORT_SYMBOL(fc_slave_alloc);
> @@ -2175,13 +2175,13 @@ int fc_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
>  {
>  	switch (reason) {
>  	case SCSI_QDEPTH_DEFAULT:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +		scsi_adjust_queue_depth(sdev, qdepth);
>  		break;
>  	case SCSI_QDEPTH_QFULL:
>  		scsi_track_queue_full(sdev, qdepth);
>  		break;
>  	case SCSI_QDEPTH_RAMP_UP:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +		scsi_adjust_queue_depth(sdev, qdepth);
>  		break;
>  	default:
>  		return -EOPNOTSUPP;
> diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
> index 0d8bc6c..d521624 100644
> --- a/drivers/scsi/libiscsi.c
> +++ b/drivers/scsi/libiscsi.c
> @@ -1775,13 +1775,13 @@ int iscsi_change_queue_depth(struct scsi_device *sdev, int depth, int reason)
>  {
>  	switch (reason) {
>  	case SCSI_QDEPTH_DEFAULT:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  		break;
>  	case SCSI_QDEPTH_QFULL:
>  		scsi_track_queue_full(sdev, depth);
>  		break;
>  	case SCSI_QDEPTH_RAMP_UP:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  		break;
>  	default:
>  		return -EOPNOTSUPP;
> diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
> index eee21a0..56d698a 100644
> --- a/drivers/scsi/libsas/sas_scsi_host.c
> +++ b/drivers/scsi/libsas/sas_scsi_host.c
> @@ -940,13 +940,13 @@ int sas_slave_configure(struct scsi_device *scsi_dev)
>  	sas_read_port_mode_page(scsi_dev);
>  
>  	if (scsi_dev->tagged_supported) {
> -		scsi_adjust_queue_depth(scsi_dev, MSG_SIMPLE_TAG, SAS_DEF_QD);
> +		scsi_adjust_queue_depth(scsi_dev, SAS_DEF_QD);
>  	} else {
>  		SAS_DPRINTK("device %llx, LUN %llx doesn't support "
>  			    "TCQ\n", SAS_ADDR(dev->sas_addr),
>  			    scsi_dev->lun);
>  		scsi_dev->tagged_supported = 0;
> -		scsi_adjust_queue_depth(scsi_dev, 0, 1);
> +		scsi_adjust_queue_depth(scsi_dev, 1);
>  	}
>  
>  	scsi_dev->allow_restart = 1;
> @@ -967,7 +967,7 @@ int sas_change_queue_depth(struct scsi_device *sdev, int depth, int reason)
>  	case SCSI_QDEPTH_RAMP_UP:
>  		if (!sdev->tagged_supported)
>  			depth = 1;
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  		break;
>  	case SCSI_QDEPTH_QFULL:
>  		scsi_track_queue_full(sdev, depth);
> @@ -979,19 +979,11 @@ int sas_change_queue_depth(struct scsi_device *sdev, int depth, int reason)
>  	return depth;
>  }
>  
> -int sas_change_queue_type(struct scsi_device *scsi_dev, int qt)
> +int sas_change_queue_type(struct scsi_device *scsi_dev, int type)
>  {
> -	struct domain_device *dev = sdev_to_domain_dev(scsi_dev);
> -
> -	if (dev_is_sata(dev))
> +	if (dev_is_sata(sdev_to_domain_dev(scsi_dev)))
>  		return -EINVAL;
> -
> -	if (!scsi_dev->tagged_supported)
> -		return 0;
> -
> -	scsi_adjust_queue_depth(scsi_dev, qt, scsi_dev->queue_depth);
> -
> -	return qt;
> +	return scsi_change_queue_type(scsi_dev, type);
>  }
>  
>  int sas_bios_param(struct scsi_device *scsi_dev,
> diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
> index a24106a..8533ee9 100644
> --- a/drivers/scsi/lpfc/lpfc_scsi.c
> +++ b/drivers/scsi/lpfc/lpfc_scsi.c
> @@ -320,7 +320,7 @@ lpfc_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
>  	case SCSI_QDEPTH_DEFAULT:
>  		/* change request from sysfs, fall through */
>  	case SCSI_QDEPTH_RAMP_UP:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +		scsi_adjust_queue_depth(sdev, qdepth);
>  		break;
>  	case SCSI_QDEPTH_QFULL:
>  		if (scsi_track_queue_full(sdev, qdepth) == 0)
> @@ -5598,7 +5598,7 @@ lpfc_slave_configure(struct scsi_device *sdev)
>  	struct lpfc_vport *vport = (struct lpfc_vport *) sdev->host->hostdata;
>  	struct lpfc_hba   *phba = vport->phba;
>  
> -	scsi_adjust_queue_depth(sdev, 0, vport->cfg_lun_queue_depth);
> +	scsi_adjust_queue_depth(sdev, vport->cfg_lun_queue_depth);
>  
>  	if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) {
>  		lpfc_sli_handle_fast_ring_event(phba,
> diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c
> index 531dce4..6b077d8 100644
> --- a/drivers/scsi/megaraid/megaraid_mbox.c
> +++ b/drivers/scsi/megaraid/megaraid_mbox.c
> @@ -349,7 +349,7 @@ static int megaraid_change_queue_depth(struct scsi_device *sdev, int qdepth,
>  
>  	if (qdepth > MBOX_MAX_SCSI_CMDS)
>  		qdepth = MBOX_MAX_SCSI_CMDS;
> -	scsi_adjust_queue_depth(sdev, 0, qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  	return sdev->queue_depth;
>  }
>  
> diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
> index f6a69a3..d95fc74 100644
> --- a/drivers/scsi/megaraid/megaraid_sas_base.c
> +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
> @@ -2594,8 +2594,7 @@ static int megasas_change_queue_depth(struct scsi_device *sdev,
>  
>  	if (queue_depth > sdev->host->can_queue)
>  		queue_depth = sdev->host->can_queue;
> -	scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev),
> -				queue_depth);
> +	scsi_adjust_queue_depth(sdev, queue_depth);
>  
>  	return queue_depth;
>  }
> diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
> index 69dc166..42fef91 100644
> --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
> +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
> @@ -1222,7 +1222,7 @@ _scsih_adjust_queue_depth(struct scsi_device *sdev, int qdepth)
>  		max_depth = 1;
>  	if (qdepth > max_depth)
>  		qdepth = max_depth;
> -	scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  }
>  
>  /**
> diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> index d3abf25..b23c2e7 100644
> --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> @@ -1090,7 +1090,7 @@ _scsih_adjust_queue_depth(struct scsi_device *sdev, int qdepth)
>  		max_depth = 1;
>  	if (qdepth > max_depth)
>  		qdepth = max_depth;
> -	scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  }
>  
>  /**
> diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c
> index a7305ff..9c331b7 100644
> --- a/drivers/scsi/ncr53c8xx.c
> +++ b/drivers/scsi/ncr53c8xx.c
> @@ -7997,10 +7997,7 @@ static int ncr53c8xx_slave_configure(struct scsi_device *device)
>  	if (depth_to_use > MAX_TAGS)
>  		depth_to_use = MAX_TAGS;
>  
> -	scsi_adjust_queue_depth(device,
> -				(device->tagged_supported ?
> -				 MSG_SIMPLE_TAG : 0),
> -				depth_to_use);
> +	scsi_adjust_queue_depth(device, depth_to_use);
>  
>  	/*
>  	**	Since the queue depth is not tunable under Linux,
> diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
> index 71f9f59..d8b9ba2 100644
> --- a/drivers/scsi/pmcraid.c
> +++ b/drivers/scsi/pmcraid.c
> @@ -249,14 +249,11 @@ static int pmcraid_slave_configure(struct scsi_device *scsi_dev)
>  				      PMCRAID_VSET_MAX_SECTORS);
>  	}
>  
> -	if (scsi_dev->tagged_supported &&
> -	    (RES_IS_GSCSI(res->cfg_entry) || RES_IS_VSET(res->cfg_entry))) {
> -		scsi_adjust_queue_depth(scsi_dev, MSG_SIMPLE_TAG,
> -					scsi_dev->host->cmd_per_lun);
> -	} else {
> -		scsi_adjust_queue_depth(scsi_dev, 0,
> -					scsi_dev->host->cmd_per_lun);
> -	}
> +	/*
> +	 * We never want to report TCQ support for these types of devices.
> +	 */
> +	if (!RES_IS_GSCSI(res->cfg_entry) && !RES_IS_VSET(res->cfg_entry))
> +		scsi_dev->tagged_supported = 0;
>  
>  	return 0;
>  }
> @@ -302,35 +299,12 @@ static int pmcraid_change_queue_depth(struct scsi_device *scsi_dev, int depth,
>  	if (depth > PMCRAID_MAX_CMD_PER_LUN)
>  		depth = PMCRAID_MAX_CMD_PER_LUN;
>  
> -	scsi_adjust_queue_depth(scsi_dev, scsi_get_tag_type(scsi_dev), depth);
> +	scsi_adjust_queue_depth(scsi_dev, depth);
>  
>  	return scsi_dev->queue_depth;
>  }
>  
>  /**
> - * pmcraid_change_queue_type - Change the device's queue type
> - * @scsi_dev: scsi device struct
> - * @tag: type of tags to use
> - *
> - * Return value:
> - *	actual queue type set
> - */
> -static int pmcraid_change_queue_type(struct scsi_device *scsi_dev, int tag)
> -{
> -	struct pmcraid_resource_entry *res;
> -
> -	res = (struct pmcraid_resource_entry *)scsi_dev->hostdata;
> -	if (res && scsi_dev->tagged_supported &&
> -	    (RES_IS_GSCSI(res->cfg_entry) || RES_IS_VSET(res->cfg_entry)))
> -	    	tag = scsi_change_queue_type(scsi_dev, tag);
> -	else
> -		tag = 0;
> -
> -	return tag;
> -}
> -
> -
> -/**
>   * pmcraid_init_cmdblk - initializes a command block
>   *
>   * @cmd: pointer to struct pmcraid_cmd to be initialized
> @@ -4285,7 +4259,7 @@ static struct scsi_host_template pmcraid_host_template = {
>  	.slave_configure = pmcraid_slave_configure,
>  	.slave_destroy = pmcraid_slave_destroy,
>  	.change_queue_depth = pmcraid_change_queue_depth,
> -	.change_queue_type  = pmcraid_change_queue_type,
> +	.change_queue_type  = scsi_change_queue_type,
>  	.can_queue = PMCRAID_MAX_IO_CMD,
>  	.this_id = -1,
>  	.sg_tablesize = PMCRAID_MAX_IOADLS,
> diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
> index 1580205..adedb6e 100644
> --- a/drivers/scsi/qla1280.c
> +++ b/drivers/scsi/qla1280.c
> @@ -1224,10 +1224,9 @@ qla1280_slave_configure(struct scsi_device *device)
>  
>  	if (device->tagged_supported &&
>  	    (ha->bus_settings[bus].qtag_enables & (BIT_0 << target))) {
> -		scsi_adjust_queue_depth(device, MSG_ORDERED_TAG,
> -					ha->bus_settings[bus].hiwat);
> +		scsi_adjust_queue_depth(device, ha->bus_settings[bus].hiwat);
>  	} else {
> -		scsi_adjust_queue_depth(device, 0, default_depth);
> +		scsi_adjust_queue_depth(device, default_depth);
>  	}
>  
>  	nv->bus[bus].target[target].parameter.enable_sync = device->sdtr;
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index eb04653..33166eb 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -1405,7 +1405,7 @@ qla2xxx_slave_configure(struct scsi_device *sdev)
>  	if (IS_T10_PI_CAPABLE(vha->hw))
>  		blk_queue_update_dma_alignment(sdev->request_queue, 0x7);
>  
> -	scsi_adjust_queue_depth(sdev, 0, req->max_q_depth);
> +	scsi_adjust_queue_depth(sdev, req->max_q_depth);
>  	return 0;
>  }
>  
> @@ -1440,7 +1440,7 @@ static void qla2x00_adjust_sdev_qdepth_up(struct scsi_device *sdev, int qdepth)
>  	if (req->max_q_depth <= sdev->queue_depth || req->max_q_depth < qdepth)
>  		return;
>  
> -	scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  
>  	ql_dbg(ql_dbg_io, vha, 0x302a,
>  	    "Queue depth adjusted-up to %d for nexus=%ld:%d:%llu.\n",
> @@ -1452,7 +1452,7 @@ qla2x00_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
>  {
>  	switch (reason) {
>  	case SCSI_QDEPTH_DEFAULT:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +		scsi_adjust_queue_depth(sdev, qdepth);
>  		break;
>  	case SCSI_QDEPTH_QFULL:
>  		qla2x00_handle_queue_full(sdev, qdepth);
> diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
> index f3119c1..784f59e 100644
> --- a/drivers/scsi/qla4xxx/ql4_os.c
> +++ b/drivers/scsi/qla4xxx/ql4_os.c
> @@ -9064,7 +9064,7 @@ static int qla4xxx_slave_alloc(struct scsi_device *sdev)
>  	if (ql4xmaxqdepth != 0 && ql4xmaxqdepth <= 0xffffU)
>  		queue_depth = ql4xmaxqdepth;
>  
> -	scsi_adjust_queue_depth(sdev, 0, queue_depth);
> +	scsi_adjust_queue_depth(sdev, queue_depth);
>  	return 0;
>  }
>  
> diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
> index a3426f1..106fa2f 100644
> --- a/drivers/scsi/scsi.c
> +++ b/drivers/scsi/scsi.c
> @@ -744,8 +744,6 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
>  /**
>   * scsi_adjust_queue_depth - Let low level drivers change a device's queue depth
>   * @sdev: SCSI Device in question
> - * @tagged: Do we use tagged queueing (non-0) or do we treat
> - *          this device as an untagged device (0)
>   * @tags: Number of tags allowed if tagged queueing enabled,
>   *        or number of commands the low level driver can
>   *        queue up in non-tagged mode (as per cmd_per_lun).
> @@ -759,7 +757,7 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
>   * 		currently active and whether or not it even has the
>   * 		command blocks built yet.
>   */
> -void scsi_adjust_queue_depth(struct scsi_device *sdev, int tagged, int tags)
> +void scsi_adjust_queue_depth(struct scsi_device *sdev, int tags)
>  {
>  	unsigned long flags;
>  
> @@ -787,20 +785,6 @@ void scsi_adjust_queue_depth(struct scsi_device *sdev, int tagged, int tags)
>  	}
>  
>  	sdev->queue_depth = tags;
> -	switch (tagged) {
> -		case 0:
> -			sdev->simple_tags = 0;
> -			break;
> -		case MSG_ORDERED_TAG:
> -		case MSG_SIMPLE_TAG:
> -			sdev->simple_tags = 1;
> -			break;
> -		default:
> -			sdev->simple_tags = 0;
> -			sdev_printk(KERN_WARNING, sdev,
> -				    "scsi_adjust_queue_depth, bad queue type, "
> -				    "disabled\n");
> -	}
>   out:
>  	spin_unlock_irqrestore(sdev->request_queue->queue_lock, flags);
>  }
> @@ -848,11 +832,12 @@ int scsi_track_queue_full(struct scsi_device *sdev, int depth)
>  		return 0;
>  	if (sdev->last_queue_full_depth < 8) {
>  		/* Drop back to untagged */
> -		scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
> +		scsi_set_tag_type(sdev, 0);
> +		scsi_adjust_queue_depth(sdev, sdev->host->cmd_per_lun);
>  		return -1;
>  	}
>  
> -	scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, depth);
> +	scsi_adjust_queue_depth(sdev, depth);
>  	return depth;
>  }
>  EXPORT_SYMBOL(scsi_track_queue_full);
> @@ -867,7 +852,7 @@ int scsi_change_queue_type(struct scsi_device *sdev, int tag_type)
>  	if (!sdev->tagged_supported)
>  		return 0;
>  
> -	scsi_adjust_queue_depth(sdev, tag_type, sdev->queue_depth);
> +	scsi_set_tag_type(sdev, tag_type);
>  	return tag_type;
>  
>  }
> diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
> index 8ca4e71..b44d9ca 100644
> --- a/drivers/scsi/scsi_debug.c
> +++ b/drivers/scsi/scsi_debug.c
> @@ -2700,11 +2700,8 @@ static int scsi_debug_slave_configure(struct scsi_device *sdp)
>  	devip = devInfoReg(sdp);
>  	if (NULL == devip)
>  		return 1;	/* no resources, will be marked offline */
> -	sdp->hostdata = devip;
>  	sdp->tagged_supported = 1;
> -	if (sdp->host->cmd_per_lun)
> -		scsi_adjust_queue_depth(sdp, DEF_TAGGED_QUEUING,
> -					DEF_CMD_PER_LUN);
> +	sdp->hostdata = devip;
>  	blk_queue_max_segment_size(sdp->request_queue, -1U);
>  	if (scsi_debug_no_uld)
>  		sdp->no_uld_attach = 1;
> @@ -4494,7 +4491,7 @@ sdebug_change_qdepth(struct scsi_device *sdev, int qdepth, int reason)
>  		/* allow to exceed max host queued_arr elements for testing */
>  		if (qdepth > SCSI_DEBUG_CANQUEUE + 10)
>  			qdepth = SCSI_DEBUG_CANQUEUE + 10;
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +		scsi_adjust_queue_depth(sdev, qdepth);
>  	} else if (reason == SCSI_QDEPTH_QFULL)
>  		scsi_track_queue_full(sdev, qdepth);
>  	else
> diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
> index 408891c..d97597e 100644
> --- a/drivers/scsi/scsi_scan.c
> +++ b/drivers/scsi/scsi_scan.c
> @@ -292,7 +292,7 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
>  		blk_queue_init_tags(sdev->request_queue,
>  				    sdev->host->cmd_per_lun, shost->bqt);
>  	}
> -	scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
> +	scsi_adjust_queue_depth(sdev, sdev->host->cmd_per_lun);
>  
>  	scsi_sysfs_device_initialize(sdev);
>  
> @@ -880,8 +880,10 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result,
>  			(inq_result[3] & 0x0f) == 1 ? " CCS" : "");
>  
>  	if ((sdev->scsi_level >= SCSI_2) && (inq_result[7] & 2) &&
> -	    !(*bflags & BLIST_NOTQ))
> +	    !(*bflags & BLIST_NOTQ)) {
>  		sdev->tagged_supported = 1;
> +		sdev->simple_tags = 1;
> +	}
>  
>  	/*
>  	 * Some devices (Texel CD ROM drives) have handshaking problems
> diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
> index b5eae4f..2bb8a9e 100644
> --- a/drivers/scsi/stex.c
> +++ b/drivers/scsi/stex.c
> @@ -549,8 +549,6 @@ stex_slave_alloc(struct scsi_device *sdev)
>  	/* Cheat: usually extracted from Inquiry data */
>  	sdev->tagged_supported = 1;
>  
> -	scsi_adjust_queue_depth(sdev, 0, sdev->host->can_queue);
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
> index 37f5fd8..ff8befb 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -1429,8 +1429,7 @@ static void storvsc_device_destroy(struct scsi_device *sdevice)
>  
>  static int storvsc_device_configure(struct scsi_device *sdevice)
>  {
> -	scsi_adjust_queue_depth(sdevice, MSG_SIMPLE_TAG,
> -				STORVSC_MAX_IO_REQUESTS);
> +	scsi_adjust_queue_depth(sdevice, STORVSC_MAX_IO_REQUESTS);
>  
>  	blk_queue_max_segment_size(sdevice->request_queue, PAGE_SIZE);
>  
> diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
> index e59e6f9..3557b38 100644
> --- a/drivers/scsi/sym53c8xx_2/sym_glue.c
> +++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
> @@ -820,9 +820,7 @@ static int sym53c8xx_slave_configure(struct scsi_device *sdev)
>  	if (reqtags > SYM_CONF_MAX_TAG)
>  		reqtags = SYM_CONF_MAX_TAG;
>  	depth_to_use = reqtags ? reqtags : 1;
> -	scsi_adjust_queue_depth(sdev,
> -				sdev->tagged_supported ? MSG_SIMPLE_TAG : 0,
> -				depth_to_use);
> +	scsi_adjust_queue_depth(sdev, depth_to_use);
>  	lp->s.scdev_depth = depth_to_use;
>  	sym_tune_dev_queuing(tp, sdev->lun, reqtags);
>  
> diff --git a/drivers/scsi/tmscsim.c b/drivers/scsi/tmscsim.c
> index 6369f9a..844c9a0 100644
> --- a/drivers/scsi/tmscsim.c
> +++ b/drivers/scsi/tmscsim.c
> @@ -2185,9 +2185,16 @@ static int dc390_slave_configure(struct scsi_device *sdev)
>  	struct dc390_dcb *dcb = (struct dc390_dcb *)sdev->hostdata;
>  
>  	acb->scan_devices = 0;
> +
> +	/*
> +	 * XXX: Note that while this driver used to called scsi_activate_tcq,
> +	 * it never actually set a tag type, so emulate the old behavior.
> +	 */
> +	scsi_set_tag_type(sdev, 0);
> +
>  	if (sdev->tagged_supported && (dcb->DevMode & TAG_QUEUEING_)) {
>  		dcb->SyncMode |= EN_TAG_QUEUEING;
> -		scsi_adjust_queue_depth(sdev, 0, acb->TagMaxNum);
> +		scsi_adjust_queue_depth(sdev, acb->TagMaxNum);
>  	}
>  
>  	return 0;
> diff --git a/drivers/scsi/u14-34f.c b/drivers/scsi/u14-34f.c
> index d8dcf36..aa0f403 100644
> --- a/drivers/scsi/u14-34f.c
> +++ b/drivers/scsi/u14-34f.c
> @@ -696,25 +696,25 @@ static int u14_34f_slave_configure(struct scsi_device *dev) {
>     if (TLDEV(dev->type) && dev->tagged_supported)
>  
>        if (tag_mode == TAG_SIMPLE) {
> -         scsi_adjust_queue_depth(dev, MSG_SIMPLE_TAG, tqd);
> +         scsi_adjust_queue_depth(dev, tqd);
>           tag_suffix = ", simple tags";
>           }
>        else if (tag_mode == TAG_ORDERED) {
> -         scsi_adjust_queue_depth(dev, MSG_ORDERED_TAG, tqd);
> +         scsi_adjust_queue_depth(dev, tqd);
>           tag_suffix = ", ordered tags";
>           }
>        else {
> -         scsi_adjust_queue_depth(dev, 0, tqd);
> +         scsi_adjust_queue_depth(dev, tqd);
>           tag_suffix = ", no tags";
>           }
>  
>     else if (TLDEV(dev->type) && linked_comm) {
> -      scsi_adjust_queue_depth(dev, 0, tqd);
> +      scsi_adjust_queue_depth(dev, tqd);
>        tag_suffix = ", untagged";
>        }
>  
>     else {
> -      scsi_adjust_queue_depth(dev, 0, utqd);
> +      scsi_adjust_queue_depth(dev, utqd);
>        tag_suffix = "";
>        }
>  
See my comment on the previous patches. As we're not using
ordered tags that branch is never used.

> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index 48c7f9e..5eb4931 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -2696,7 +2696,7 @@ static void ufshcd_set_queue_depth(struct scsi_device *sdev)
>  	dev_dbg(hba->dev, "%s: activate tcq with queue depth %d\n",
>  			__func__, lun_qdepth);
>  	if (sdev->tagged_supported)
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), lun_qdepth);
> +		scsi_adjust_queue_depth(sdev, lun_qdepth);
>  }
>  
>  /*
> @@ -2808,7 +2808,7 @@ static int ufshcd_change_queue_depth(struct scsi_device *sdev,
>  	case SCSI_QDEPTH_RAMP_UP:
>  		if (!sdev->tagged_supported)
>  			depth = 1;
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  		break;
>  	case SCSI_QDEPTH_QFULL:
>  		scsi_track_queue_full(sdev, depth);
> diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
> index b83846f..355afbc 100644
> --- a/drivers/scsi/virtio_scsi.c
> +++ b/drivers/scsi/virtio_scsi.c
> @@ -683,9 +683,7 @@ static int virtscsi_change_queue_depth(struct scsi_device *sdev,
>  		break;
>  	case SCSI_QDEPTH_RAMP_UP: /* Raise qdepth after BUSY state resolved */
>  	case SCSI_QDEPTH_DEFAULT: /* Manual change via sysfs */
> -		scsi_adjust_queue_depth(sdev,
> -					scsi_get_tag_type(sdev),
> -					min(max_depth, qdepth));
> +		scsi_adjust_queue_depth(sdev, min(max_depth, qdepth));
>  		break;
>  	default:
>  		return -EOPNOTSUPP;
> diff --git a/drivers/scsi/vmw_pvscsi.c b/drivers/scsi/vmw_pvscsi.c
> index 39f082b..4a01c05 100644
> --- a/drivers/scsi/vmw_pvscsi.c
> +++ b/drivers/scsi/vmw_pvscsi.c
> @@ -522,7 +522,7 @@ static int pvscsi_change_queue_depth(struct scsi_device *sdev,
>  		max_depth = 1;
>  	if (qdepth > max_depth)
>  		qdepth = max_depth;
> -	scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), qdepth);
> +	scsi_adjust_queue_depth(sdev, qdepth);
>  
>  	if (sdev->inquiry_len > 7)
>  		sdev_printk(KERN_INFO, sdev,
> diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
> index 120a851..0ed9664 100644
> --- a/drivers/target/loopback/tcm_loop.c
> +++ b/drivers/target/loopback/tcm_loop.c
> @@ -121,13 +121,13 @@ static int tcm_loop_change_queue_depth(
>  {
>  	switch (reason) {
>  	case SCSI_QDEPTH_DEFAULT:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  		break;
>  	case SCSI_QDEPTH_QFULL:
>  		scsi_track_queue_full(sdev, depth);
>  		break;
>  	case SCSI_QDEPTH_RAMP_UP:
> -		scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
> +		scsi_adjust_queue_depth(sdev, depth);
>  		break;
>  	default:
>  		return -EOPNOTSUPP;
> @@ -404,19 +404,6 @@ static int tcm_loop_slave_alloc(struct scsi_device *sd)
>  	return 0;
>  }
>  
> -static int tcm_loop_slave_configure(struct scsi_device *sd)
> -{
> -	if (sd->tagged_supported) {
> -		scsi_adjust_queue_depth(sd, MSG_SIMPLE_TAG,
> -					sd->host->cmd_per_lun);
> -	} else {
> -		scsi_adjust_queue_depth(sd, 0,
> -					sd->host->cmd_per_lun);
> -	}
> -
> -	return 0;
> -}
> -
>  static struct scsi_host_template tcm_loop_driver_template = {
>  	.show_info		= tcm_loop_show_info,
>  	.proc_name		= "tcm_loopback",
> @@ -434,7 +421,6 @@ static struct scsi_host_template tcm_loop_driver_template = {
>  	.max_sectors		= 0xFFFF,
>  	.use_clustering		= DISABLE_CLUSTERING,
>  	.slave_alloc		= tcm_loop_slave_alloc,
> -	.slave_configure	= tcm_loop_slave_configure,
>  	.module			= THIS_MODULE,
>  	.use_blk_tags		= 1,
>  };
> diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
> index ee69b82..33f211b 100644
> --- a/drivers/usb/storage/uas.c
> +++ b/drivers/usb/storage/uas.c
> @@ -799,7 +799,7 @@ static int uas_slave_configure(struct scsi_device *sdev)
>  	if (devinfo->flags & US_FL_NO_REPORT_OPCODES)
>  		sdev->no_report_opcodes = 1;
>  
> -	scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, devinfo->qdepth - 2);
> +	scsi_adjust_queue_depth(sdev, devinfo->qdepth - 2);
>  	return 0;
>  }
>  
> diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
> index f56175d..74c2a5b 100644
> --- a/include/scsi/scsi_device.h
> +++ b/include/scsi/scsi_device.h
> @@ -387,7 +387,7 @@ extern struct scsi_device *__scsi_iterate_devices(struct Scsi_Host *,
>  #define __shost_for_each_device(sdev, shost) \
>  	list_for_each_entry((sdev), &((shost)->__devices), siblings)
>  
> -extern void scsi_adjust_queue_depth(struct scsi_device *, int, int);
> +extern void scsi_adjust_queue_depth(struct scsi_device *, int);
>  extern int scsi_track_queue_full(struct scsi_device *, int);
>  
>  extern int scsi_set_medium_removal(struct scsi_device *, char);
> 
Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2014-11-04  9:27 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-04  7:54 tag handling refactor Christoph Hellwig
2014-11-04  7:54 ` [PATCH 01/11] scsi: provide a generic change_queue_type method Christoph Hellwig
2014-11-04  8:26   ` Hannes Reinecke
2014-11-05  2:09   ` Martin K. Petersen
2014-11-06 15:28   ` Bart Van Assche
2014-11-06 15:35     ` Christoph Hellwig
2014-11-04  7:54 ` [PATCH 02/11] scsi: add new scsi-command flag for tagged commands Christoph Hellwig
2014-11-04  8:38   ` Hannes Reinecke
2014-11-04 10:35     ` Christoph Hellwig
2014-11-04 10:44       ` Hannes Reinecke
2014-11-05  2:12   ` Martin K. Petersen
2014-11-04  7:54 ` [PATCH 03/11] scsi: remove ordered_tags scsi_device field Christoph Hellwig
2014-11-05  2:14   ` Martin K. Petersen
2014-11-06 15:44   ` Bart Van Assche
2014-11-04  7:54 ` [PATCH 04/11] scsi: remove ordered_tag host template field Christoph Hellwig
2014-11-04  8:38   ` Hannes Reinecke
2014-11-05  2:15   ` Martin K. Petersen
2014-11-06 15:45   ` Bart Van Assche
2014-11-04  7:54 ` [PATCH 05/11] scsi: remove abuses of scsi_populate_tag Christoph Hellwig
2014-11-04  8:45   ` Hannes Reinecke
2014-11-04 10:37     ` Christoph Hellwig
2014-11-04  7:54 ` [PATCH 06/11] mptfusion: don't change queue type in ->change_queue_depth Christoph Hellwig
2014-11-04  8:46   ` Hannes Reinecke
2014-11-05  2:17   ` Martin K. Petersen
2014-11-04  7:54 ` [PATCH 07/11] scsi: remove use_blk_tcq Scsi_Host field Christoph Hellwig
2014-11-04  8:46   ` Hannes Reinecke
2014-11-05  2:18   ` Martin K. Petersen
2014-11-04  7:54 ` [PATCH 08/11] scsi: always assign block layer tags if enabled Christoph Hellwig
2014-11-04  9:01   ` Hannes Reinecke
2014-11-04 10:42     ` Christoph Hellwig
2014-11-04 10:46       ` Hannes Reinecke
2014-11-05  2:32   ` Martin K. Petersen
2014-11-05  2:34     ` Martin K. Petersen
2014-11-06 16:28   ` Bart Van Assche
2014-11-06 16:31     ` Christoph Hellwig
2014-11-04  7:54 ` [PATCH 09/11] scsi: don't set tagging state from scsi_adjust_queue_depth Christoph Hellwig
2014-11-04  9:26   ` Hannes Reinecke [this message]
2014-11-04 10:47     ` Christoph Hellwig
2014-11-05  2:50   ` Martin K. Petersen
2014-11-04  7:54 ` [PATCH 10/11] scsi: don't force tagged_supported in drivers Christoph Hellwig
2014-11-04  8:16   ` Jack Wang
2014-11-04 10:34     ` Christoph Hellwig
2014-11-04  7:54 ` [PATCH 11/11] ufs: remove spurious scsi_set_tag_type call Christoph Hellwig
2014-11-05 19:26 ` tag handling refactor Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2014-11-10 15:56 tag handling refactor V2 Christoph Hellwig
2014-11-10 15:56 ` [PATCH 09/11] scsi: don't set tagging state from scsi_adjust_queue_depth Christoph Hellwig
2014-11-11 15:41   ` Hannes Reinecke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54589BE1.6070106@suse.de \
    --to=hare@suse.de \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=axboe@fb.com \
    --cc=bvanassche@acm.org \
    --cc=elliott@hp.com \
    --cc=g.liakhovetski@gmx.de \
    --cc=hch@lst.de \
    --cc=kashyap.desai@avagotech.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=michaelc@cs.wisc.edu \
    --cc=sreekanth.reddy@avagotech.com \
    --cc=usb-storage@lists.one-eyed-alien.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.