diff options
author | James Smart <James.Smart@Emulex.Com> | 2006-12-02 13:34:16 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-12-03 10:29:18 -0500 |
commit | a4bc3379fbc368597024104727fdf14ced483c14 (patch) | |
tree | ed16c3eb403754d7fb9e8928ecc5a286f10a12d3 /drivers/scsi/lpfc/lpfc_hbadisc.c | |
parent | 2fb9bd8b9cbe9a8d70bf5f43a9ee6a4fa565ed5a (diff) |
[SCSI] lpfc 8.1.11 : Fix lpfc_multi_ring_support
It was not accounted for in the fast/slow rings.
Genericize the implementation and control it via sysfs
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 983faadec5f3..7c28184ad56d 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c | |||
@@ -525,7 +525,7 @@ lpfc_mbx_cmpl_clear_la(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | |||
525 | psli = &phba->sli; | 525 | psli = &phba->sli; |
526 | mb = &pmb->mb; | 526 | mb = &pmb->mb; |
527 | /* Since we don't do discovery right now, turn these off here */ | 527 | /* Since we don't do discovery right now, turn these off here */ |
528 | psli->ring[psli->ip_ring].flag &= ~LPFC_STOP_IOCB_EVENT; | 528 | psli->ring[psli->extra_ring].flag &= ~LPFC_STOP_IOCB_EVENT; |
529 | psli->ring[psli->fcp_ring].flag &= ~LPFC_STOP_IOCB_EVENT; | 529 | psli->ring[psli->fcp_ring].flag &= ~LPFC_STOP_IOCB_EVENT; |
530 | psli->ring[psli->next_ring].flag &= ~LPFC_STOP_IOCB_EVENT; | 530 | psli->ring[psli->next_ring].flag &= ~LPFC_STOP_IOCB_EVENT; |
531 | 531 | ||
@@ -641,7 +641,7 @@ out: | |||
641 | if (rc == MBX_NOT_FINISHED) { | 641 | if (rc == MBX_NOT_FINISHED) { |
642 | mempool_free(pmb, phba->mbox_mem_pool); | 642 | mempool_free(pmb, phba->mbox_mem_pool); |
643 | lpfc_disc_flush_list(phba); | 643 | lpfc_disc_flush_list(phba); |
644 | psli->ring[(psli->ip_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 644 | psli->ring[(psli->extra_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
645 | psli->ring[(psli->fcp_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 645 | psli->ring[(psli->fcp_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
646 | psli->ring[(psli->next_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 646 | psli->ring[(psli->next_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
647 | phba->hba_state = LPFC_HBA_READY; | 647 | phba->hba_state = LPFC_HBA_READY; |
@@ -696,7 +696,7 @@ out: | |||
696 | == MBX_NOT_FINISHED) { | 696 | == MBX_NOT_FINISHED) { |
697 | mempool_free( pmb, phba->mbox_mem_pool); | 697 | mempool_free( pmb, phba->mbox_mem_pool); |
698 | lpfc_disc_flush_list(phba); | 698 | lpfc_disc_flush_list(phba); |
699 | psli->ring[(psli->ip_ring)].flag &= | 699 | psli->ring[(psli->extra_ring)].flag &= |
700 | ~LPFC_STOP_IOCB_EVENT; | 700 | ~LPFC_STOP_IOCB_EVENT; |
701 | psli->ring[(psli->fcp_ring)].flag &= | 701 | psli->ring[(psli->fcp_ring)].flag &= |
702 | ~LPFC_STOP_IOCB_EVENT; | 702 | ~LPFC_STOP_IOCB_EVENT; |
@@ -1424,7 +1424,7 @@ lpfc_check_sli_ndlp(struct lpfc_hba * phba, | |||
1424 | if (iocb->context1 == (uint8_t *) ndlp) | 1424 | if (iocb->context1 == (uint8_t *) ndlp) |
1425 | return 1; | 1425 | return 1; |
1426 | } | 1426 | } |
1427 | } else if (pring->ringno == psli->ip_ring) { | 1427 | } else if (pring->ringno == psli->extra_ring) { |
1428 | 1428 | ||
1429 | } else if (pring->ringno == psli->fcp_ring) { | 1429 | } else if (pring->ringno == psli->fcp_ring) { |
1430 | /* Skip match check if waiting to relogin to FCP target */ | 1430 | /* Skip match check if waiting to relogin to FCP target */ |
@@ -1889,7 +1889,7 @@ lpfc_disc_start(struct lpfc_hba * phba) | |||
1889 | if (rc == MBX_NOT_FINISHED) { | 1889 | if (rc == MBX_NOT_FINISHED) { |
1890 | mempool_free( mbox, phba->mbox_mem_pool); | 1890 | mempool_free( mbox, phba->mbox_mem_pool); |
1891 | lpfc_disc_flush_list(phba); | 1891 | lpfc_disc_flush_list(phba); |
1892 | psli->ring[(psli->ip_ring)].flag &= | 1892 | psli->ring[(psli->extra_ring)].flag &= |
1893 | ~LPFC_STOP_IOCB_EVENT; | 1893 | ~LPFC_STOP_IOCB_EVENT; |
1894 | psli->ring[(psli->fcp_ring)].flag &= | 1894 | psli->ring[(psli->fcp_ring)].flag &= |
1895 | ~LPFC_STOP_IOCB_EVENT; | 1895 | ~LPFC_STOP_IOCB_EVENT; |
@@ -2268,7 +2268,7 @@ lpfc_disc_timeout_handler(struct lpfc_hba *phba) | |||
2268 | 2268 | ||
2269 | if (clrlaerr) { | 2269 | if (clrlaerr) { |
2270 | lpfc_disc_flush_list(phba); | 2270 | lpfc_disc_flush_list(phba); |
2271 | psli->ring[(psli->ip_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 2271 | psli->ring[(psli->extra_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
2272 | psli->ring[(psli->fcp_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 2272 | psli->ring[(psli->fcp_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
2273 | psli->ring[(psli->next_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 2273 | psli->ring[(psli->next_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
2274 | phba->hba_state = LPFC_HBA_READY; | 2274 | phba->hba_state = LPFC_HBA_READY; |