aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2014-10-30 06:54:58 -0400
committerChristoph Hellwig <hch@lst.de>2014-11-12 05:19:40 -0500
commit609aa22f3be76d470a334f39cc2197112dc91bd7 (patch)
tree710daebfe903df387a3b4a9927badde84620bdc9
parent125c99bc8b6b108d251169a86324a7ed3c6f3cce (diff)
scsi: remove ordered_tags scsi_device field
Remove the ordered_tags field, we haven't been issuing ordered tags based on it since the big barrier rework in 2010. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/message/fusion/mptscsih.c5
-rw-r--r--drivers/scsi/bfa/bfad_im.c11
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c16
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_scsih.c15
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c5
-rw-r--r--drivers/scsi/scsi.c13
-rw-r--r--drivers/scsi/scsi_sysfs.c13
-rw-r--r--drivers/scsi/vmw_pvscsi.c4
-rw-r--r--drivers/target/loopback/tcm_loop.c14
-rw-r--r--include/scsi/scsi_device.h1
-rw-r--r--include/scsi/scsi_tcq.h9
11 files changed, 25 insertions, 81 deletions
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index e7dcb2583369..00bd13dc3dc4 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -2400,9 +2400,8 @@ mptscsih_slave_configure(struct scsi_device *sdev)
2400 mptscsih_change_queue_depth(sdev, MPT_SCSI_CMD_PER_DEV_HIGH, 2400 mptscsih_change_queue_depth(sdev, MPT_SCSI_CMD_PER_DEV_HIGH,
2401 SCSI_QDEPTH_DEFAULT); 2401 SCSI_QDEPTH_DEFAULT);
2402 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT 2402 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
2403 "tagged %d, simple %d, ordered %d\n", 2403 "tagged %d, simple %d\n",
2404 ioc->name,sdev->tagged_supported, sdev->simple_tags, 2404 ioc->name,sdev->tagged_supported, sdev->simple_tags));
2405 sdev->ordered_tags));
2406 2405
2407 blk_queue_dma_alignment (sdev->request_queue, 512 - 1); 2406 blk_queue_dma_alignment (sdev->request_queue, 512 - 1);
2408 2407
diff --git a/drivers/scsi/bfa/bfad_im.c b/drivers/scsi/bfa/bfad_im.c
index f067332bf763..99280e89c289 100644
--- a/drivers/scsi/bfa/bfad_im.c
+++ b/drivers/scsi/bfa/bfad_im.c
@@ -868,14 +868,9 @@ bfad_ramp_up_qdepth(struct bfad_itnim_s *itnim, struct scsi_device *sdev)
868 if (bfa_lun_queue_depth > tmp_sdev->queue_depth) { 868 if (bfa_lun_queue_depth > tmp_sdev->queue_depth) {
869 if (tmp_sdev->id != sdev->id) 869 if (tmp_sdev->id != sdev->id)
870 continue; 870 continue;
871 if (tmp_sdev->ordered_tags) 871 scsi_adjust_queue_depth(tmp_sdev,
872 scsi_adjust_queue_depth(tmp_sdev, 872 MSG_SIMPLE_TAG,
873 MSG_ORDERED_TAG, 873 tmp_sdev->queue_depth + 1);
874 tmp_sdev->queue_depth + 1);
875 else
876 scsi_adjust_queue_depth(tmp_sdev,
877 MSG_SIMPLE_TAG,
878 tmp_sdev->queue_depth + 1);
879 874
880 itnim->last_ramp_up_time = jiffies; 875 itnim->last_ramp_up_time = jiffies;
881 } 876 }
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index ec36b91c880f..69dc166b52bc 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -1246,9 +1246,9 @@ _scsih_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
1246 1246
1247 if (sdev->inquiry_len > 7) 1247 if (sdev->inquiry_len > 7)
1248 sdev_printk(KERN_INFO, sdev, "qdepth(%d), tagged(%d), " 1248 sdev_printk(KERN_INFO, sdev, "qdepth(%d), tagged(%d), "
1249 "simple(%d), ordered(%d), scsi_level(%d), cmd_que(%d)\n", 1249 "simple(%d), scsi_level(%d), cmd_que(%d)\n",
1250 sdev->queue_depth, sdev->tagged_supported, sdev->simple_tags, 1250 sdev->queue_depth, sdev->tagged_supported, sdev->simple_tags,
1251 sdev->ordered_tags, sdev->scsi_level, 1251 sdev->scsi_level,
1252 (sdev->inquiry[7] & 2) >> 1); 1252 (sdev->inquiry[7] & 2) >> 1);
1253 1253
1254 return sdev->queue_depth; 1254 return sdev->queue_depth;
@@ -3944,16 +3944,8 @@ _scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
3944 mpi_control = MPI2_SCSIIO_CONTROL_NODATATRANSFER; 3944 mpi_control = MPI2_SCSIIO_CONTROL_NODATATRANSFER;
3945 3945
3946 /* set tags */ 3946 /* set tags */
3947 if (!(sas_device_priv_data->flags & MPT_DEVICE_FLAGS_INIT)) { 3947 mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
3948 if (scmd->device->tagged_supported) { 3948
3949 if (scmd->device->ordered_tags)
3950 mpi_control |= MPI2_SCSIIO_CONTROL_ORDEREDQ;
3951 else
3952 mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
3953 } else
3954 mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
3955 } else
3956 mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
3957 /* Make sure Device is not raid volume. 3949 /* Make sure Device is not raid volume.
3958 * We do not expose raid functionality to upper layer for warpdrive. 3950 * We do not expose raid functionality to upper layer for warpdrive.
3959 */ 3951 */
diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
index 52464ace282b..d3abf254341d 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
@@ -1114,9 +1114,9 @@ _scsih_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
1114 1114
1115 if (sdev->inquiry_len > 7) 1115 if (sdev->inquiry_len > 7)
1116 sdev_printk(KERN_INFO, sdev, "qdepth(%d), tagged(%d), " \ 1116 sdev_printk(KERN_INFO, sdev, "qdepth(%d), tagged(%d), " \
1117 "simple(%d), ordered(%d), scsi_level(%d), cmd_que(%d)\n", 1117 "simple(%d), scsi_level(%d), cmd_que(%d)\n",
1118 sdev->queue_depth, sdev->tagged_supported, sdev->simple_tags, 1118 sdev->queue_depth, sdev->tagged_supported, sdev->simple_tags,
1119 sdev->ordered_tags, sdev->scsi_level, 1119 sdev->scsi_level,
1120 (sdev->inquiry[7] & 2) >> 1); 1120 (sdev->inquiry[7] & 2) >> 1);
1121 1121
1122 return sdev->queue_depth; 1122 return sdev->queue_depth;
@@ -3563,16 +3563,7 @@ _scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
3563 mpi_control = MPI2_SCSIIO_CONTROL_NODATATRANSFER; 3563 mpi_control = MPI2_SCSIIO_CONTROL_NODATATRANSFER;
3564 3564
3565 /* set tags */ 3565 /* set tags */
3566 if (!(sas_device_priv_data->flags & MPT_DEVICE_FLAGS_INIT)) { 3566 mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
3567 if (scmd->device->tagged_supported) {
3568 if (scmd->device->ordered_tags)
3569 mpi_control |= MPI2_SCSIIO_CONTROL_ORDEREDQ;
3570 else
3571 mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
3572 } else
3573 mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
3574 } else
3575 mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
3576 3567
3577 if ((sas_device_priv_data->flags & MPT_DEVICE_TLR_ON) && 3568 if ((sas_device_priv_data->flags & MPT_DEVICE_TLR_ON) &&
3578 scmd->cmd_len != 32) 3569 scmd->cmd_len != 32)
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 5e755747e073..1e34fcf68e77 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -1442,10 +1442,7 @@ static void qla2x00_adjust_sdev_qdepth_up(struct scsi_device *sdev, int qdepth)
1442 if (req->max_q_depth <= sdev->queue_depth || req->max_q_depth < qdepth) 1442 if (req->max_q_depth <= sdev->queue_depth || req->max_q_depth < qdepth)
1443 return; 1443 return;
1444 1444
1445 if (sdev->ordered_tags) 1445 scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, qdepth);
1446 scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, qdepth);
1447 else
1448 scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, qdepth);
1449 1446
1450 ql_dbg(ql_dbg_io, vha, 0x302a, 1447 ql_dbg(ql_dbg_io, vha, 0x302a,
1451 "Queue depth adjusted-up to %d for nexus=%ld:%d:%llu.\n", 1448 "Queue depth adjusted-up to %d for nexus=%ld:%d:%llu.\n",
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 9baeff03dd9b..22c449e926fa 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -789,19 +789,13 @@ void scsi_adjust_queue_depth(struct scsi_device *sdev, int tagged, int tags)
789 sdev->queue_depth = tags; 789 sdev->queue_depth = tags;
790 switch (tagged) { 790 switch (tagged) {
791 case 0: 791 case 0:
792 sdev->ordered_tags = 0;
793 sdev->simple_tags = 0; 792 sdev->simple_tags = 0;
794 break; 793 break;
795 case MSG_ORDERED_TAG: 794 case MSG_ORDERED_TAG:
796 sdev->ordered_tags = 1;
797 sdev->simple_tags = 1;
798 break;
799 case MSG_SIMPLE_TAG: 795 case MSG_SIMPLE_TAG:
800 sdev->ordered_tags = 0;
801 sdev->simple_tags = 1; 796 sdev->simple_tags = 1;
802 break; 797 break;
803 default: 798 default:
804 sdev->ordered_tags = 0;
805 sdev->simple_tags = 0; 799 sdev->simple_tags = 0;
806 sdev_printk(KERN_WARNING, sdev, 800 sdev_printk(KERN_WARNING, sdev,
807 "scsi_adjust_queue_depth, bad queue type, " 801 "scsi_adjust_queue_depth, bad queue type, "
@@ -857,11 +851,8 @@ int scsi_track_queue_full(struct scsi_device *sdev, int depth)
857 scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun); 851 scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
858 return -1; 852 return -1;
859 } 853 }
860 854
861 if (sdev->ordered_tags) 855 scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, depth);
862 scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, depth);
863 else
864 scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, depth);
865 return depth; 856 return depth;
866} 857}
867EXPORT_SYMBOL(scsi_track_queue_full); 858EXPORT_SYMBOL(scsi_track_queue_full);
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index f4cb7b3e9e23..35d93b0af82b 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -727,9 +727,7 @@ show_queue_type_field(struct device *dev, struct device_attribute *attr,
727 struct scsi_device *sdev = to_scsi_device(dev); 727 struct scsi_device *sdev = to_scsi_device(dev);
728 const char *name = "none"; 728 const char *name = "none";
729 729
730 if (sdev->ordered_tags) 730 if (sdev->simple_tags)
731 name = "ordered";
732 else if (sdev->simple_tags)
733 name = "simple"; 731 name = "simple";
734 732
735 return snprintf(buf, 20, "%s\n", name); 733 return snprintf(buf, 20, "%s\n", name);
@@ -747,9 +745,12 @@ store_queue_type_field(struct device *dev, struct device_attribute *attr,
747 if (!sdev->tagged_supported || !sht->change_queue_type) 745 if (!sdev->tagged_supported || !sht->change_queue_type)
748 return -EINVAL; 746 return -EINVAL;
749 747
750 if (strncmp(buf, "ordered", 7) == 0) 748 /*
751 tag_type = MSG_ORDERED_TAG; 749 * We're never issueing order tags these days, but allow the value
752 else if (strncmp(buf, "simple", 6) == 0) 750 * for backwards compatibility.
751 */
752 if (strncmp(buf, "ordered", 7) == 0 ||
753 strncmp(buf, "simple", 6) == 0)
753 tag_type = MSG_SIMPLE_TAG; 754 tag_type = MSG_SIMPLE_TAG;
754 else if (strncmp(buf, "none", 4) != 0) 755 else if (strncmp(buf, "none", 4) != 0)
755 return -EINVAL; 756 return -EINVAL;
diff --git a/drivers/scsi/vmw_pvscsi.c b/drivers/scsi/vmw_pvscsi.c
index 598f65efaaec..53a3eb6c0634 100644
--- a/drivers/scsi/vmw_pvscsi.c
+++ b/drivers/scsi/vmw_pvscsi.c
@@ -526,9 +526,9 @@ static int pvscsi_change_queue_depth(struct scsi_device *sdev,
526 526
527 if (sdev->inquiry_len > 7) 527 if (sdev->inquiry_len > 7)
528 sdev_printk(KERN_INFO, sdev, 528 sdev_printk(KERN_INFO, sdev,
529 "qdepth(%d), tagged(%d), simple(%d), ordered(%d), scsi_level(%d), cmd_que(%d)\n", 529 "qdepth(%d), tagged(%d), simple(%d), scsi_level(%d), cmd_que(%d)\n",
530 sdev->queue_depth, sdev->tagged_supported, 530 sdev->queue_depth, sdev->tagged_supported,
531 sdev->simple_tags, sdev->ordered_tags, 531 sdev->simple_tags,
532 sdev->scsi_level, (sdev->inquiry[7] & 2) >> 1); 532 sdev->scsi_level, (sdev->inquiry[7] & 2) >> 1);
533 return sdev->queue_depth; 533 return sdev->queue_depth;
534} 534}
diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
index 3b9c76835b45..e30932f989a1 100644
--- a/drivers/target/loopback/tcm_loop.c
+++ b/drivers/target/loopback/tcm_loop.c
@@ -135,18 +135,6 @@ static int tcm_loop_change_queue_depth(
135 return sdev->queue_depth; 135 return sdev->queue_depth;
136} 136}
137 137
138/*
139 * Locate the SAM Task Attr from struct scsi_cmnd *
140 */
141static int tcm_loop_sam_attr(struct scsi_cmnd *sc, int tag)
142{
143 if (sc->device->tagged_supported &&
144 sc->device->ordered_tags && tag >= 0)
145 return MSG_ORDERED_TAG;
146
147 return MSG_SIMPLE_TAG;
148}
149
150static void tcm_loop_submission_work(struct work_struct *work) 138static void tcm_loop_submission_work(struct work_struct *work)
151{ 139{
152 struct tcm_loop_cmd *tl_cmd = 140 struct tcm_loop_cmd *tl_cmd =
@@ -205,7 +193,7 @@ static void tcm_loop_submission_work(struct work_struct *work)
205 193
206 rc = target_submit_cmd_map_sgls(se_cmd, tl_nexus->se_sess, sc->cmnd, 194 rc = target_submit_cmd_map_sgls(se_cmd, tl_nexus->se_sess, sc->cmnd,
207 &tl_cmd->tl_sense_buf[0], tl_cmd->sc->device->lun, 195 &tl_cmd->tl_sense_buf[0], tl_cmd->sc->device->lun,
208 transfer_length, tcm_loop_sam_attr(sc, tl_cmd->sc_cmd_tag), 196 transfer_length, MSG_SIMPLE_TAG,
209 sc->sc_data_direction, 0, 197 sc->sc_data_direction, 0,
210 scsi_sglist(sc), scsi_sg_count(sc), 198 scsi_sglist(sc), scsi_sg_count(sc),
211 sgl_bidi, sgl_bidi_count, 199 sgl_bidi, sgl_bidi_count,
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index 50d47e6e89d1..e8fecb5ea79a 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
@@ -141,7 +141,6 @@ struct scsi_device {
141 unsigned ppr:1; /* Device supports PPR messages */ 141 unsigned ppr:1; /* Device supports PPR messages */
142 unsigned tagged_supported:1; /* Supports SCSI-II tagged queuing */ 142 unsigned tagged_supported:1; /* Supports SCSI-II tagged queuing */
143 unsigned simple_tags:1; /* simple queue tag messages are enabled */ 143 unsigned simple_tags:1; /* simple queue tag messages are enabled */
144 unsigned ordered_tags:1;/* ordered queue tag messages are enabled */
145 unsigned was_reset:1; /* There was a bus reset on the bus for 144 unsigned was_reset:1; /* There was a bus reset on the bus for
146 * this device */ 145 * this device */
147 unsigned expecting_cc_ua:1; /* Expecting a CHECK_CONDITION/UNIT_ATTN 146 unsigned expecting_cc_ua:1; /* Expecting a CHECK_CONDITION/UNIT_ATTN
diff --git a/include/scsi/scsi_tcq.h b/include/scsi/scsi_tcq.h
index 032df74b66d7..342f38c5b065 100644
--- a/include/scsi/scsi_tcq.h
+++ b/include/scsi/scsi_tcq.h
@@ -21,17 +21,11 @@ int scsi_change_queue_type(struct scsi_device *sdev, int tag_type);
21/** 21/**
22 * scsi_get_tag_type - get the type of tag the device supports 22 * scsi_get_tag_type - get the type of tag the device supports
23 * @sdev: the scsi device 23 * @sdev: the scsi device
24 *
25 * Notes:
26 * If the drive only supports simple tags, returns MSG_SIMPLE_TAG
27 * if it supports all tag types, returns MSG_ORDERED_TAG.
28 */ 24 */
29static inline int scsi_get_tag_type(struct scsi_device *sdev) 25static inline int scsi_get_tag_type(struct scsi_device *sdev)
30{ 26{
31 if (!sdev->tagged_supported) 27 if (!sdev->tagged_supported)
32 return 0; 28 return 0;
33 if (sdev->ordered_tags)
34 return MSG_ORDERED_TAG;
35 if (sdev->simple_tags) 29 if (sdev->simple_tags)
36 return MSG_SIMPLE_TAG; 30 return MSG_SIMPLE_TAG;
37 return 0; 31 return 0;
@@ -41,15 +35,12 @@ static inline void scsi_set_tag_type(struct scsi_device *sdev, int tag)
41{ 35{
42 switch (tag) { 36 switch (tag) {
43 case MSG_ORDERED_TAG: 37 case MSG_ORDERED_TAG:
44 sdev->ordered_tags = 1;
45 /* fall through */
46 case MSG_SIMPLE_TAG: 38 case MSG_SIMPLE_TAG:
47 sdev->simple_tags = 1; 39 sdev->simple_tags = 1;
48 break; 40 break;
49 case 0: 41 case 0:
50 /* fall through */ 42 /* fall through */
51 default: 43 default:
52 sdev->ordered_tags = 0;
53 sdev->simple_tags = 0; 44 sdev->simple_tags = 0;
54 break; 45 break;
55 } 46 }