aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_scsi_host.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libsas/sas_scsi_host.c')
-rw-r--r--drivers/scsi/libsas/sas_scsi_host.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index 24e477d2ea70..eee21a060d93 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -940,15 +940,13 @@ int sas_slave_configure(struct scsi_device *scsi_dev)
940 sas_read_port_mode_page(scsi_dev); 940 sas_read_port_mode_page(scsi_dev);
941 941
942 if (scsi_dev->tagged_supported) { 942 if (scsi_dev->tagged_supported) {
943 scsi_set_tag_type(scsi_dev, MSG_SIMPLE_TAG); 943 scsi_adjust_queue_depth(scsi_dev, MSG_SIMPLE_TAG, SAS_DEF_QD);
944 scsi_activate_tcq(scsi_dev, SAS_DEF_QD);
945 } else { 944 } else {
946 SAS_DPRINTK("device %llx, LUN %llx doesn't support " 945 SAS_DPRINTK("device %llx, LUN %llx doesn't support "
947 "TCQ\n", SAS_ADDR(dev->sas_addr), 946 "TCQ\n", SAS_ADDR(dev->sas_addr),
948 scsi_dev->lun); 947 scsi_dev->lun);
949 scsi_dev->tagged_supported = 0; 948 scsi_dev->tagged_supported = 0;
950 scsi_set_tag_type(scsi_dev, 0); 949 scsi_adjust_queue_depth(scsi_dev, 0, 1);
951 scsi_deactivate_tcq(scsi_dev, 1);
952 } 950 }
953 951
954 scsi_dev->allow_restart = 1; 952 scsi_dev->allow_restart = 1;
@@ -991,10 +989,7 @@ int sas_change_queue_type(struct scsi_device *scsi_dev, int qt)
991 if (!scsi_dev->tagged_supported) 989 if (!scsi_dev->tagged_supported)
992 return 0; 990 return 0;
993 991
994 scsi_deactivate_tcq(scsi_dev, 1); 992 scsi_adjust_queue_depth(scsi_dev, qt, scsi_dev->queue_depth);
995
996 scsi_set_tag_type(scsi_dev, qt);
997 scsi_activate_tcq(scsi_dev, scsi_dev->queue_depth);
998 993
999 return qt; 994 return qt;
1000} 995}