diff options
author | Christoph Hellwig <hch@lst.de> | 2014-11-03 14:15:14 -0500 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-11-12 05:19:43 -0500 |
commit | c8b09f6fb67df7fc1b51ced1037fa9b677428149 (patch) | |
tree | 87527c3e17a7539c0ffa9f64fbd85ec2ad3dabf1 /Documentation/scsi | |
parent | 2ecb204d07ac8debe3893c362415919bc78bebd6 (diff) |
scsi: don't set tagging state from scsi_adjust_queue_depth
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>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'Documentation/scsi')
-rw-r--r-- | Documentation/scsi/scsi_mid_low_api.txt | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt index a67194209581..bee7d86b9dcc 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() ----+ | |||
271 | slave_destroy() *** | 271 | slave_destroy() *** |
272 | ------------------------------------------------------------ | 272 | ------------------------------------------------------------ |
273 | 273 | ||
274 | The mid level invokes scsi_adjust_queue_depth() with tagged queuing off and | 274 | The mid level invokes scsi_adjust_queue_depth() with "cmd_per_lun" for that |
275 | "cmd_per_lun" for that host as the queue length. These settings can be | 275 | host as the queue length. These settings can be overridden by a |
276 | overridden by a slave_configure() supplied by the LLD. | 276 | slave_configure() supplied by the LLD. |
277 | 277 | ||
278 | *** For scsi devices that the mid level tries to scan but do not | 278 | *** For scsi devices that the mid level tries to scan but do not |
279 | respond, a slave_alloc(), slave_destroy() pair is called. | 279 | respond, a slave_alloc(), slave_destroy() pair is called. |
@@ -438,9 +438,6 @@ int scsi_add_host(struct Scsi_Host *shost, struct device * dev) | |||
438 | /** | 438 | /** |
439 | * scsi_adjust_queue_depth - allow LLD to change queue depth on a SCSI device | 439 | * scsi_adjust_queue_depth - allow LLD to change queue depth on a SCSI device |
440 | * @sdev: pointer to SCSI device to change queue depth on | 440 | * @sdev: pointer to SCSI device to change queue depth on |
441 | * @tagged: 0 - no tagged queuing | ||
442 | * MSG_SIMPLE_TAG - simple tagged queuing | ||
443 | * MSG_ORDERED_TAG - ordered tagged queuing | ||
444 | * @tags Number of tags allowed if tagged queuing enabled, | 441 | * @tags Number of tags allowed if tagged queuing enabled, |
445 | * or number of commands the LLD can queue up | 442 | * or number of commands the LLD can queue up |
446 | * in non-tagged mode (as per cmd_per_lun). | 443 | * in non-tagged mode (as per cmd_per_lun). |
@@ -456,8 +453,7 @@ int scsi_add_host(struct Scsi_Host *shost, struct device * dev) | |||
456 | * Defined in: drivers/scsi/scsi.c [see source code for more notes] | 453 | * Defined in: drivers/scsi/scsi.c [see source code for more notes] |
457 | * | 454 | * |
458 | **/ | 455 | **/ |
459 | void scsi_adjust_queue_depth(struct scsi_device * sdev, int tagged, | 456 | void scsi_adjust_queue_depth(struct scsi_device *sdev, int tags) |
460 | int tags) | ||
461 | 457 | ||
462 | 458 | ||
463 | /** | 459 | /** |