diff options
Diffstat (limited to 'drivers/scsi/libfc/fc_exch.c')
| -rw-r--r-- | drivers/scsi/libfc/fc_exch.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c index 7c055fdca45d..1b22130035da 100644 --- a/drivers/scsi/libfc/fc_exch.c +++ b/drivers/scsi/libfc/fc_exch.c | |||
| @@ -469,6 +469,7 @@ static int fc_seq_send(struct fc_lport *lport, struct fc_seq *sp, | |||
| 469 | struct fc_frame_header *fh = fc_frame_header_get(fp); | 469 | struct fc_frame_header *fh = fc_frame_header_get(fp); |
| 470 | int error; | 470 | int error; |
| 471 | u32 f_ctl; | 471 | u32 f_ctl; |
| 472 | u8 fh_type = fh->fh_type; | ||
| 472 | 473 | ||
| 473 | ep = fc_seq_exch(sp); | 474 | ep = fc_seq_exch(sp); |
| 474 | WARN_ON((ep->esb_stat & ESB_ST_SEQ_INIT) != ESB_ST_SEQ_INIT); | 475 | WARN_ON((ep->esb_stat & ESB_ST_SEQ_INIT) != ESB_ST_SEQ_INIT); |
| @@ -493,7 +494,7 @@ static int fc_seq_send(struct fc_lport *lport, struct fc_seq *sp, | |||
| 493 | */ | 494 | */ |
| 494 | error = lport->tt.frame_send(lport, fp); | 495 | error = lport->tt.frame_send(lport, fp); |
| 495 | 496 | ||
| 496 | if (fh->fh_type == FC_TYPE_BLS) | 497 | if (fh_type == FC_TYPE_BLS) |
| 497 | return error; | 498 | return error; |
| 498 | 499 | ||
| 499 | /* | 500 | /* |
| @@ -1792,6 +1793,9 @@ restart: | |||
| 1792 | goto restart; | 1793 | goto restart; |
| 1793 | } | 1794 | } |
| 1794 | } | 1795 | } |
| 1796 | pool->next_index = 0; | ||
| 1797 | pool->left = FC_XID_UNKNOWN; | ||
| 1798 | pool->right = FC_XID_UNKNOWN; | ||
| 1795 | spin_unlock_bh(&pool->lock); | 1799 | spin_unlock_bh(&pool->lock); |
| 1796 | } | 1800 | } |
| 1797 | 1801 | ||
| @@ -2280,6 +2284,7 @@ struct fc_exch_mgr *fc_exch_mgr_alloc(struct fc_lport *lport, | |||
| 2280 | goto free_mempool; | 2284 | goto free_mempool; |
| 2281 | for_each_possible_cpu(cpu) { | 2285 | for_each_possible_cpu(cpu) { |
| 2282 | pool = per_cpu_ptr(mp->pool, cpu); | 2286 | pool = per_cpu_ptr(mp->pool, cpu); |
| 2287 | pool->next_index = 0; | ||
| 2283 | pool->left = FC_XID_UNKNOWN; | 2288 | pool->left = FC_XID_UNKNOWN; |
| 2284 | pool->right = FC_XID_UNKNOWN; | 2289 | pool->right = FC_XID_UNKNOWN; |
| 2285 | spin_lock_init(&pool->lock); | 2290 | spin_lock_init(&pool->lock); |
