aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/53c700.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2015-10-08 04:28:04 -0400
committerJames Bottomley <JBottomley@Odin.com>2015-11-09 20:11:57 -0500
commit64d513ac31bd02a3c9b69ef04444f36c196f9a9d (patch)
tree240e1bb8a92f76b53a5cc3c00e528851a488ebf8 /drivers/scsi/53c700.c
parent720ba808e9ca276919f566bbe2b4e09c79f25faa (diff)
scsi: use host wide tags by default
This patch changes the !blk-mq path to the same defaults as the blk-mq I/O path by always enabling block tagging, and always using host wide tags. We've had blk-mq available for a few releases so bugs with this mode should have been ironed out, and this ensures we get better coverage of over tagging setup over different configs. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Jens Axboe <axboe@kernel.dk> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Odin.com>
Diffstat (limited to 'drivers/scsi/53c700.c')
-rw-r--r--drivers/scsi/53c700.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c
index a209c3418898..d4c285688ce9 100644
--- a/drivers/scsi/53c700.c
+++ b/drivers/scsi/53c700.c
@@ -325,7 +325,6 @@ NCR_700_detect(struct scsi_host_template *tpnt,
325 tpnt->slave_destroy = NCR_700_slave_destroy; 325 tpnt->slave_destroy = NCR_700_slave_destroy;
326 tpnt->slave_alloc = NCR_700_slave_alloc; 326 tpnt->slave_alloc = NCR_700_slave_alloc;
327 tpnt->change_queue_depth = NCR_700_change_queue_depth; 327 tpnt->change_queue_depth = NCR_700_change_queue_depth;
328 tpnt->use_blk_tags = 1;
329 328
330 if(tpnt->name == NULL) 329 if(tpnt->name == NULL)
331 tpnt->name = "53c700"; 330 tpnt->name = "53c700";
@@ -1107,7 +1106,9 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
1107 BUG(); 1106 BUG();
1108 } 1107 }
1109 if(hostdata->msgin[1] == A_SIMPLE_TAG_MSG) { 1108 if(hostdata->msgin[1] == A_SIMPLE_TAG_MSG) {
1110 struct scsi_cmnd *SCp = scsi_find_tag(SDp, hostdata->msgin[2]); 1109 struct scsi_cmnd *SCp;
1110
1111 SCp = scsi_host_find_tag(SDp->host, hostdata->msgin[2]);
1111 if(unlikely(SCp == NULL)) { 1112 if(unlikely(SCp == NULL)) {
1112 printk(KERN_ERR "scsi%d: (%d:%d) no saved request for tag %d\n", 1113 printk(KERN_ERR "scsi%d: (%d:%d) no saved request for tag %d\n",
1113 host->host_no, reselection_id, lun, hostdata->msgin[2]); 1114 host->host_no, reselection_id, lun, hostdata->msgin[2]);
@@ -1119,7 +1120,9 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
1119 "reselection is tag %d, slot %p(%d)\n", 1120 "reselection is tag %d, slot %p(%d)\n",
1120 hostdata->msgin[2], slot, slot->tag); 1121 hostdata->msgin[2], slot, slot->tag);
1121 } else { 1122 } else {
1122 struct scsi_cmnd *SCp = scsi_find_tag(SDp, SCSI_NO_TAG); 1123 struct scsi_cmnd *SCp;
1124
1125 SCp = scsi_host_find_tag(SDp->host, SCSI_NO_TAG);
1123 if(unlikely(SCp == NULL)) { 1126 if(unlikely(SCp == NULL)) {
1124 sdev_printk(KERN_ERR, SDp, 1127 sdev_printk(KERN_ERR, SDp,
1125 "no saved request for untagged cmd\n"); 1128 "no saved request for untagged cmd\n");
@@ -1823,7 +1826,7 @@ NCR_700_queuecommand_lck(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *)
1823 slot->tag, slot); 1826 slot->tag, slot);
1824 } else { 1827 } else {
1825 slot->tag = SCSI_NO_TAG; 1828 slot->tag = SCSI_NO_TAG;
1826 /* must populate current_cmnd for scsi_find_tag to work */ 1829 /* must populate current_cmnd for scsi_host_find_tag to work */
1827 SCp->device->current_cmnd = SCp; 1830 SCp->device->current_cmnd = SCp;
1828 } 1831 }
1829 /* sanity check: some of the commands generated by the mid-layer 1832 /* sanity check: some of the commands generated by the mid-layer