Skip to content

Commit

Permalink
[SCSI] zfcp: Use status_read_buf_num provided by FCP channel
Browse files Browse the repository at this point in the history
The FCP channel provides the number of status read buffers to issue.
Use the provided number instead of the hardcoded number in zfcp.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
  • Loading branch information
Christof Schmitt authored and James Bottomley committed May 2, 2010
1 parent 6b9e152 commit 64deb6e
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 3 deletions.
3 changes: 2 additions & 1 deletion drivers/s390/scsi/zfcp_aux.c
Expand Up @@ -425,7 +425,8 @@ int zfcp_status_read_refill(struct zfcp_adapter *adapter)
{
while (atomic_read(&adapter->stat_miss) > 0)
if (zfcp_fsf_status_read(adapter->qdio)) {
if (atomic_read(&adapter->stat_miss) >= 16) {
if (atomic_read(&adapter->stat_miss) >=
adapter->stat_read_buf_num) {
zfcp_erp_adapter_reopen(adapter, 0, "axsref1",
NULL);
return 1;
Expand Down
1 change: 1 addition & 0 deletions drivers/s390/scsi/zfcp_def.h
Expand Up @@ -164,6 +164,7 @@ struct zfcp_adapter {
stack abort/command
completion races */
atomic_t stat_miss; /* # missing status reads*/
unsigned int stat_read_buf_num;
struct work_struct stat_work;
atomic_t status; /* status of this adapter */
struct list_head erp_ready_head; /* error recovery for this
Expand Down
2 changes: 1 addition & 1 deletion drivers/s390/scsi/zfcp_erp.c
Expand Up @@ -714,7 +714,7 @@ static int zfcp_erp_adapter_strategy_open_fsf(struct zfcp_erp_action *act)
if (zfcp_erp_adapter_strategy_open_fsf_xport(act) == ZFCP_ERP_FAILED)
return ZFCP_ERP_FAILED;

atomic_set(&act->adapter->stat_miss, 16);
atomic_set(&act->adapter->stat_miss, act->adapter->stat_read_buf_num);
if (zfcp_status_read_refill(act->adapter))
return ZFCP_ERP_FAILED;

Expand Down
1 change: 1 addition & 0 deletions drivers/s390/scsi/zfcp_fsf.c
Expand Up @@ -496,6 +496,7 @@ static int zfcp_fsf_exchange_config_evaluate(struct zfcp_fsf_req *req)

adapter->hydra_version = bottom->adapter_type;
adapter->timer_ticks = bottom->timer_interval;
adapter->stat_read_buf_num = max(bottom->status_read_buf_num, (u16)16);

if (fc_host_permanent_port_name(shost) == -1)
fc_host_permanent_port_name(shost) = fc_host_port_name(shost);
Expand Down
2 changes: 1 addition & 1 deletion drivers/s390/scsi/zfcp_fsf.h
Expand Up @@ -366,7 +366,7 @@ struct fsf_qtcb_bottom_config {
u32 adapter_type;
u8 res0;
u8 peer_d_id[3];
u8 res1[2];
u16 status_read_buf_num;
u16 timer_interval;
u8 res2[9];
u8 s_id[3];
Expand Down

0 comments on commit 64deb6e

Please sign in to comment.