diff options
-rw-r--r-- | drivers/infiniband/ulp/iser/iscsi_iser.c | 2 | ||||
-rw-r--r-- | drivers/scsi/cxgb3i/cxgb3i_iscsi.c | 5 | ||||
-rw-r--r-- | drivers/scsi/iscsi_tcp.c | 3 | ||||
-rw-r--r-- | drivers/scsi/libiscsi.c | 11 | ||||
-rw-r--r-- | include/scsi/libiscsi.h | 2 |
5 files changed, 10 insertions, 13 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c index a50cd53e2753..6c61ed12f299 100644 --- a/drivers/infiniband/ulp/iser/iscsi_iser.c +++ b/drivers/infiniband/ulp/iser/iscsi_iser.c | |||
@@ -404,7 +404,7 @@ iscsi_iser_session_create(struct iscsi_endpoint *ep, | |||
404 | struct Scsi_Host *shost; | 404 | struct Scsi_Host *shost; |
405 | struct iser_conn *ib_conn; | 405 | struct iser_conn *ib_conn; |
406 | 406 | ||
407 | shost = iscsi_host_alloc(&iscsi_iser_sht, 0, ISER_DEF_CMD_PER_LUN, 1); | 407 | shost = iscsi_host_alloc(&iscsi_iser_sht, 0, 1); |
408 | if (!shost) | 408 | if (!shost) |
409 | return NULL; | 409 | return NULL; |
410 | shost->transportt = iscsi_iser_scsi_transport; | 410 | shost->transportt = iscsi_iser_scsi_transport; |
diff --git a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c index f6ed9c62efb0..307f55e329f5 100644 --- a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c +++ b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c | |||
@@ -170,8 +170,7 @@ struct cxgb3i_hba *cxgb3i_hba_host_add(struct cxgb3i_adapter *snic, | |||
170 | int err; | 170 | int err; |
171 | 171 | ||
172 | shost = iscsi_host_alloc(&cxgb3i_host_template, | 172 | shost = iscsi_host_alloc(&cxgb3i_host_template, |
173 | sizeof(struct cxgb3i_hba), | 173 | sizeof(struct cxgb3i_hba), 1); |
174 | CXGB3I_SCSI_QDEPTH_DFLT, 1); | ||
175 | if (!shost) { | 174 | if (!shost) { |
176 | cxgb3i_log_info("iscsi_host_alloc failed.\n"); | 175 | cxgb3i_log_info("iscsi_host_alloc failed.\n"); |
177 | return NULL; | 176 | return NULL; |
@@ -843,7 +842,7 @@ static struct scsi_host_template cxgb3i_host_template = { | |||
843 | .can_queue = CXGB3I_SCSI_QDEPTH_DFLT - 1, | 842 | .can_queue = CXGB3I_SCSI_QDEPTH_DFLT - 1, |
844 | .sg_tablesize = SG_ALL, | 843 | .sg_tablesize = SG_ALL, |
845 | .max_sectors = 0xFFFF, | 844 | .max_sectors = 0xFFFF, |
846 | .cmd_per_lun = ISCSI_DEF_CMD_PER_LUN, | 845 | .cmd_per_lun = CXGB3I_SCSI_QDEPTH_DFLT, |
847 | .eh_abort_handler = iscsi_eh_abort, | 846 | .eh_abort_handler = iscsi_eh_abort, |
848 | .eh_device_reset_handler = iscsi_eh_device_reset, | 847 | .eh_device_reset_handler = iscsi_eh_device_reset, |
849 | .eh_target_reset_handler = iscsi_eh_target_reset, | 848 | .eh_target_reset_handler = iscsi_eh_target_reset, |
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c index 79a706a94c68..ad8676c98c68 100644 --- a/drivers/scsi/iscsi_tcp.c +++ b/drivers/scsi/iscsi_tcp.c | |||
@@ -777,10 +777,11 @@ iscsi_sw_tcp_session_create(struct iscsi_endpoint *ep, uint16_t cmds_max, | |||
777 | return NULL; | 777 | return NULL; |
778 | } | 778 | } |
779 | 779 | ||
780 | shost = iscsi_host_alloc(&iscsi_sw_tcp_sht, 0, qdepth, 1); | 780 | shost = iscsi_host_alloc(&iscsi_sw_tcp_sht, 0, 1); |
781 | if (!shost) | 781 | if (!shost) |
782 | return NULL; | 782 | return NULL; |
783 | shost->transportt = iscsi_sw_tcp_scsi_transport; | 783 | shost->transportt = iscsi_sw_tcp_scsi_transport; |
784 | shost->cmd_per_lun = qdepth; | ||
784 | shost->max_lun = iscsi_max_lun; | 785 | shost->max_lun = iscsi_max_lun; |
785 | shost->max_id = 0; | 786 | shost->max_id = 0; |
786 | shost->max_channel = 0; | 787 | shost->max_channel = 0; |
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index ff891543df22..d12f9794fcd0 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c | |||
@@ -2046,6 +2046,9 @@ int iscsi_host_add(struct Scsi_Host *shost, struct device *pdev) | |||
2046 | if (!shost->can_queue) | 2046 | if (!shost->can_queue) |
2047 | shost->can_queue = ISCSI_DEF_XMIT_CMDS_MAX; | 2047 | shost->can_queue = ISCSI_DEF_XMIT_CMDS_MAX; |
2048 | 2048 | ||
2049 | if (!shost->cmd_per_lun) | ||
2050 | shost->cmd_per_lun = ISCSI_DEF_CMD_PER_LUN; | ||
2051 | |||
2049 | if (!shost->transportt->eh_timed_out) | 2052 | if (!shost->transportt->eh_timed_out) |
2050 | shost->transportt->eh_timed_out = iscsi_eh_cmd_timed_out; | 2053 | shost->transportt->eh_timed_out = iscsi_eh_cmd_timed_out; |
2051 | return scsi_add_host(shost, pdev); | 2054 | return scsi_add_host(shost, pdev); |
@@ -2056,15 +2059,13 @@ EXPORT_SYMBOL_GPL(iscsi_host_add); | |||
2056 | * iscsi_host_alloc - allocate a host and driver data | 2059 | * iscsi_host_alloc - allocate a host and driver data |
2057 | * @sht: scsi host template | 2060 | * @sht: scsi host template |
2058 | * @dd_data_size: driver host data size | 2061 | * @dd_data_size: driver host data size |
2059 | * @qdepth: default device queue depth | ||
2060 | * @xmit_can_sleep: bool indicating if LLD will queue IO from a work queue | 2062 | * @xmit_can_sleep: bool indicating if LLD will queue IO from a work queue |
2061 | * | 2063 | * |
2062 | * This should be called by partial offload and software iscsi drivers. | 2064 | * This should be called by partial offload and software iscsi drivers. |
2063 | * To access the driver specific memory use the iscsi_host_priv() macro. | 2065 | * To access the driver specific memory use the iscsi_host_priv() macro. |
2064 | */ | 2066 | */ |
2065 | struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht, | 2067 | struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht, |
2066 | int dd_data_size, uint16_t qdepth, | 2068 | int dd_data_size, bool xmit_can_sleep) |
2067 | bool xmit_can_sleep) | ||
2068 | { | 2069 | { |
2069 | struct Scsi_Host *shost; | 2070 | struct Scsi_Host *shost; |
2070 | struct iscsi_host *ihost; | 2071 | struct iscsi_host *ihost; |
@@ -2072,10 +2073,6 @@ struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht, | |||
2072 | shost = scsi_host_alloc(sht, sizeof(struct iscsi_host) + dd_data_size); | 2073 | shost = scsi_host_alloc(sht, sizeof(struct iscsi_host) + dd_data_size); |
2073 | if (!shost) | 2074 | if (!shost) |
2074 | return NULL; | 2075 | return NULL; |
2075 | |||
2076 | if (qdepth == 0) | ||
2077 | qdepth = ISCSI_DEF_CMD_PER_LUN; | ||
2078 | shost->cmd_per_lun = qdepth; | ||
2079 | ihost = shost_priv(shost); | 2076 | ihost = shost_priv(shost); |
2080 | 2077 | ||
2081 | if (xmit_can_sleep) { | 2078 | if (xmit_can_sleep) { |
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index b0b8a6992497..84eded91b945 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h | |||
@@ -346,7 +346,7 @@ extern int iscsi_host_get_param(struct Scsi_Host *shost, | |||
346 | enum iscsi_host_param param, char *buf); | 346 | enum iscsi_host_param param, char *buf); |
347 | extern int iscsi_host_add(struct Scsi_Host *shost, struct device *pdev); | 347 | extern int iscsi_host_add(struct Scsi_Host *shost, struct device *pdev); |
348 | extern struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht, | 348 | extern struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht, |
349 | int dd_data_size, uint16_t qdepth, | 349 | int dd_data_size, |
350 | bool xmit_can_sleep); | 350 | bool xmit_can_sleep); |
351 | extern void iscsi_host_remove(struct Scsi_Host *shost); | 351 | extern void iscsi_host_remove(struct Scsi_Host *shost); |
352 | extern void iscsi_host_free(struct Scsi_Host *shost); | 352 | extern void iscsi_host_free(struct Scsi_Host *shost); |