mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-11-01 10:33:27 +00:00
[SCSI] zfcp: Use status_read_buf_num provided by FCP channel
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>
This commit is contained in:
parent
6b9e152009
commit
64deb6efdc
5 changed files with 6 additions and 3 deletions
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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];
|
||||
|
|
Loading…
Reference in a new issue