diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-05 18:32:53 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-05 18:32:53 -0400 |
| commit | cd3f07d1e6e59fade92a8edaff9315cc534199cf (patch) | |
| tree | a2f30bccdfad1826a81c098c6766c2a4345fc171 /drivers/scsi/libfc/fc_exch.c | |
| parent | dc822e57ee05856291a8c9324d2309076ee5f5e2 (diff) | |
| parent | f7c9c6bb14f3104608a3a83cadea10a6943d2804 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (45 commits)
[SCSI] Fix block queue and elevator memory leak in scsi_alloc_sdev
[SCSI] scsi_dh_alua: Fix the time inteval for alua rtpg commands
[SCSI] scsi_transport_iscsi: Fix documentation os parameter
[SCSI] mv_sas: OCZ RevoDrive3 & zDrive R4 support
[SCSI] libfc: improve flogi retries to avoid lport stuck
[SCSI] libfc: avoid exchanges collision during lport reset
[SCSI] libfc: fix checking FC_TYPE_BLS
[SCSI] edd: Treat "XPRS" host bus type the same as "PCI"
[SCSI] isci: overriding max_concurr_spinup oem parameter by max(oem, user)
[SCSI] isci: revert bcn filtering
[SCSI] isci: Fix hard reset timeout conditions.
[SCSI] isci: No need to manage the pending reset bit on pending requests.
[SCSI] isci: Remove redundant isci_request.ttype field.
[SCSI] isci: Fix task management for SMP, SATA and on dev remove.
[SCSI] isci: No task_done callbacks in error handler paths.
[SCSI] isci: Handle task request timeouts correctly.
[SCSI] isci: Fix tag leak in tasks and terminated requests.
[SCSI] isci: Immediately fail I/O to removed devices.
[SCSI] isci: Lookup device references through requests in completions.
[SCSI] ipr: add definitions for additional adapter
...
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); |
