diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 229 |
1 files changed, 49 insertions, 180 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 19c79a0549a7..c39564e85e94 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; |
@@ -672,6 +672,8 @@ lpfc_mbx_cmpl_read_sparam(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | |||
672 | 672 | ||
673 | memcpy((uint8_t *) & phba->fc_sparam, (uint8_t *) mp->virt, | 673 | memcpy((uint8_t *) & phba->fc_sparam, (uint8_t *) mp->virt, |
674 | sizeof (struct serv_parm)); | 674 | sizeof (struct serv_parm)); |
675 | if (phba->cfg_soft_wwnn) | ||
676 | u64_to_wwn(phba->cfg_soft_wwnn, phba->fc_sparam.nodeName.u.wwn); | ||
675 | if (phba->cfg_soft_wwpn) | 677 | if (phba->cfg_soft_wwpn) |
676 | u64_to_wwn(phba->cfg_soft_wwpn, phba->fc_sparam.portName.u.wwn); | 678 | u64_to_wwn(phba->cfg_soft_wwpn, phba->fc_sparam.portName.u.wwn); |
677 | memcpy((uint8_t *) & phba->fc_nodename, | 679 | memcpy((uint8_t *) & phba->fc_nodename, |
@@ -696,7 +698,7 @@ out: | |||
696 | == MBX_NOT_FINISHED) { | 698 | == MBX_NOT_FINISHED) { |
697 | mempool_free( pmb, phba->mbox_mem_pool); | 699 | mempool_free( pmb, phba->mbox_mem_pool); |
698 | lpfc_disc_flush_list(phba); | 700 | lpfc_disc_flush_list(phba); |
699 | psli->ring[(psli->ip_ring)].flag &= | 701 | psli->ring[(psli->extra_ring)].flag &= |
700 | ~LPFC_STOP_IOCB_EVENT; | 702 | ~LPFC_STOP_IOCB_EVENT; |
701 | psli->ring[(psli->fcp_ring)].flag &= | 703 | psli->ring[(psli->fcp_ring)].flag &= |
702 | ~LPFC_STOP_IOCB_EVENT; | 704 | ~LPFC_STOP_IOCB_EVENT; |
@@ -715,6 +717,9 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, READ_LA_VAR *la) | |||
715 | { | 717 | { |
716 | int i; | 718 | int i; |
717 | LPFC_MBOXQ_t *sparam_mbox, *cfglink_mbox; | 719 | LPFC_MBOXQ_t *sparam_mbox, *cfglink_mbox; |
720 | struct lpfc_dmabuf *mp; | ||
721 | int rc; | ||
722 | |||
718 | sparam_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); | 723 | sparam_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); |
719 | cfglink_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); | 724 | cfglink_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); |
720 | 725 | ||
@@ -793,16 +798,27 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, READ_LA_VAR *la) | |||
793 | if (sparam_mbox) { | 798 | if (sparam_mbox) { |
794 | lpfc_read_sparam(phba, sparam_mbox); | 799 | lpfc_read_sparam(phba, sparam_mbox); |
795 | sparam_mbox->mbox_cmpl = lpfc_mbx_cmpl_read_sparam; | 800 | sparam_mbox->mbox_cmpl = lpfc_mbx_cmpl_read_sparam; |
796 | lpfc_sli_issue_mbox(phba, sparam_mbox, | 801 | rc = lpfc_sli_issue_mbox(phba, sparam_mbox, |
797 | (MBX_NOWAIT | MBX_STOP_IOCB)); | 802 | (MBX_NOWAIT | MBX_STOP_IOCB)); |
803 | if (rc == MBX_NOT_FINISHED) { | ||
804 | mp = (struct lpfc_dmabuf *) sparam_mbox->context1; | ||
805 | lpfc_mbuf_free(phba, mp->virt, mp->phys); | ||
806 | kfree(mp); | ||
807 | mempool_free(sparam_mbox, phba->mbox_mem_pool); | ||
808 | if (cfglink_mbox) | ||
809 | mempool_free(cfglink_mbox, phba->mbox_mem_pool); | ||
810 | return; | ||
811 | } | ||
798 | } | 812 | } |
799 | 813 | ||
800 | if (cfglink_mbox) { | 814 | if (cfglink_mbox) { |
801 | phba->hba_state = LPFC_LOCAL_CFG_LINK; | 815 | phba->hba_state = LPFC_LOCAL_CFG_LINK; |
802 | lpfc_config_link(phba, cfglink_mbox); | 816 | lpfc_config_link(phba, cfglink_mbox); |
803 | cfglink_mbox->mbox_cmpl = lpfc_mbx_cmpl_local_config_link; | 817 | cfglink_mbox->mbox_cmpl = lpfc_mbx_cmpl_local_config_link; |
804 | lpfc_sli_issue_mbox(phba, cfglink_mbox, | 818 | rc = lpfc_sli_issue_mbox(phba, cfglink_mbox, |
805 | (MBX_NOWAIT | MBX_STOP_IOCB)); | 819 | (MBX_NOWAIT | MBX_STOP_IOCB)); |
820 | if (rc == MBX_NOT_FINISHED) | ||
821 | mempool_free(cfglink_mbox, phba->mbox_mem_pool); | ||
806 | } | 822 | } |
807 | } | 823 | } |
808 | 824 | ||
@@ -1067,6 +1083,7 @@ lpfc_mbx_cmpl_ns_reg_login(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | |||
1067 | lpfc_ns_cmd(phba, ndlp, SLI_CTNS_RNN_ID); | 1083 | lpfc_ns_cmd(phba, ndlp, SLI_CTNS_RNN_ID); |
1068 | lpfc_ns_cmd(phba, ndlp, SLI_CTNS_RSNN_NN); | 1084 | lpfc_ns_cmd(phba, ndlp, SLI_CTNS_RSNN_NN); |
1069 | lpfc_ns_cmd(phba, ndlp, SLI_CTNS_RFT_ID); | 1085 | lpfc_ns_cmd(phba, ndlp, SLI_CTNS_RFT_ID); |
1086 | lpfc_ns_cmd(phba, ndlp, SLI_CTNS_RFF_ID); | ||
1070 | } | 1087 | } |
1071 | 1088 | ||
1072 | phba->fc_ns_retry = 0; | 1089 | phba->fc_ns_retry = 0; |
@@ -1423,7 +1440,7 @@ lpfc_check_sli_ndlp(struct lpfc_hba * phba, | |||
1423 | if (iocb->context1 == (uint8_t *) ndlp) | 1440 | if (iocb->context1 == (uint8_t *) ndlp) |
1424 | return 1; | 1441 | return 1; |
1425 | } | 1442 | } |
1426 | } else if (pring->ringno == psli->ip_ring) { | 1443 | } else if (pring->ringno == psli->extra_ring) { |
1427 | 1444 | ||
1428 | } else if (pring->ringno == psli->fcp_ring) { | 1445 | } else if (pring->ringno == psli->fcp_ring) { |
1429 | /* Skip match check if waiting to relogin to FCP target */ | 1446 | /* Skip match check if waiting to relogin to FCP target */ |
@@ -1680,112 +1697,38 @@ lpfc_matchdid(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp, uint32_t did) | |||
1680 | struct lpfc_nodelist * | 1697 | struct lpfc_nodelist * |
1681 | lpfc_findnode_did(struct lpfc_hba * phba, uint32_t order, uint32_t did) | 1698 | lpfc_findnode_did(struct lpfc_hba * phba, uint32_t order, uint32_t did) |
1682 | { | 1699 | { |
1683 | struct lpfc_nodelist *ndlp, *next_ndlp; | 1700 | struct lpfc_nodelist *ndlp; |
1701 | struct list_head *lists[]={&phba->fc_nlpunmap_list, | ||
1702 | &phba->fc_nlpmap_list, | ||
1703 | &phba->fc_plogi_list, | ||
1704 | &phba->fc_adisc_list, | ||
1705 | &phba->fc_reglogin_list, | ||
1706 | &phba->fc_prli_list, | ||
1707 | &phba->fc_npr_list, | ||
1708 | &phba->fc_unused_list}; | ||
1709 | uint32_t search[]={NLP_SEARCH_UNMAPPED, | ||
1710 | NLP_SEARCH_MAPPED, | ||
1711 | NLP_SEARCH_PLOGI, | ||
1712 | NLP_SEARCH_ADISC, | ||
1713 | NLP_SEARCH_REGLOGIN, | ||
1714 | NLP_SEARCH_PRLI, | ||
1715 | NLP_SEARCH_NPR, | ||
1716 | NLP_SEARCH_UNUSED}; | ||
1717 | int i; | ||
1684 | uint32_t data1; | 1718 | uint32_t data1; |
1685 | 1719 | ||
1686 | spin_lock_irq(phba->host->host_lock); | 1720 | spin_lock_irq(phba->host->host_lock); |
1687 | if (order & NLP_SEARCH_UNMAPPED) { | 1721 | for (i = 0; i < ARRAY_SIZE(lists); i++ ) { |
1688 | list_for_each_entry_safe(ndlp, next_ndlp, | 1722 | if (!(order & search[i])) |
1689 | &phba->fc_nlpunmap_list, nlp_listp) { | 1723 | continue; |
1690 | if (lpfc_matchdid(phba, ndlp, did)) { | 1724 | list_for_each_entry(ndlp, lists[i], nlp_listp) { |
1691 | data1 = (((uint32_t) ndlp->nlp_state << 24) | | ||
1692 | ((uint32_t) ndlp->nlp_xri << 16) | | ||
1693 | ((uint32_t) ndlp->nlp_type << 8) | | ||
1694 | ((uint32_t) ndlp->nlp_rpi & 0xff)); | ||
1695 | /* FIND node DID unmapped */ | ||
1696 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, | ||
1697 | "%d:0929 FIND node DID unmapped" | ||
1698 | " Data: x%p x%x x%x x%x\n", | ||
1699 | phba->brd_no, | ||
1700 | ndlp, ndlp->nlp_DID, | ||
1701 | ndlp->nlp_flag, data1); | ||
1702 | spin_unlock_irq(phba->host->host_lock); | ||
1703 | return ndlp; | ||
1704 | } | ||
1705 | } | ||
1706 | } | ||
1707 | |||
1708 | if (order & NLP_SEARCH_MAPPED) { | ||
1709 | list_for_each_entry_safe(ndlp, next_ndlp, &phba->fc_nlpmap_list, | ||
1710 | nlp_listp) { | ||
1711 | if (lpfc_matchdid(phba, ndlp, did)) { | ||
1712 | |||
1713 | data1 = (((uint32_t) ndlp->nlp_state << 24) | | ||
1714 | ((uint32_t) ndlp->nlp_xri << 16) | | ||
1715 | ((uint32_t) ndlp->nlp_type << 8) | | ||
1716 | ((uint32_t) ndlp->nlp_rpi & 0xff)); | ||
1717 | /* FIND node DID mapped */ | ||
1718 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, | ||
1719 | "%d:0930 FIND node DID mapped " | ||
1720 | "Data: x%p x%x x%x x%x\n", | ||
1721 | phba->brd_no, | ||
1722 | ndlp, ndlp->nlp_DID, | ||
1723 | ndlp->nlp_flag, data1); | ||
1724 | spin_unlock_irq(phba->host->host_lock); | ||
1725 | return ndlp; | ||
1726 | } | ||
1727 | } | ||
1728 | } | ||
1729 | |||
1730 | if (order & NLP_SEARCH_PLOGI) { | ||
1731 | list_for_each_entry_safe(ndlp, next_ndlp, &phba->fc_plogi_list, | ||
1732 | nlp_listp) { | ||
1733 | if (lpfc_matchdid(phba, ndlp, did)) { | ||
1734 | |||
1735 | data1 = (((uint32_t) ndlp->nlp_state << 24) | | ||
1736 | ((uint32_t) ndlp->nlp_xri << 16) | | ||
1737 | ((uint32_t) ndlp->nlp_type << 8) | | ||
1738 | ((uint32_t) ndlp->nlp_rpi & 0xff)); | ||
1739 | /* LOG change to PLOGI */ | ||
1740 | /* FIND node DID plogi */ | ||
1741 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, | ||
1742 | "%d:0908 FIND node DID plogi " | ||
1743 | "Data: x%p x%x x%x x%x\n", | ||
1744 | phba->brd_no, | ||
1745 | ndlp, ndlp->nlp_DID, | ||
1746 | ndlp->nlp_flag, data1); | ||
1747 | spin_unlock_irq(phba->host->host_lock); | ||
1748 | return ndlp; | ||
1749 | } | ||
1750 | } | ||
1751 | } | ||
1752 | |||
1753 | if (order & NLP_SEARCH_ADISC) { | ||
1754 | list_for_each_entry_safe(ndlp, next_ndlp, &phba->fc_adisc_list, | ||
1755 | nlp_listp) { | ||
1756 | if (lpfc_matchdid(phba, ndlp, did)) { | ||
1757 | |||
1758 | data1 = (((uint32_t) ndlp->nlp_state << 24) | | ||
1759 | ((uint32_t) ndlp->nlp_xri << 16) | | ||
1760 | ((uint32_t) ndlp->nlp_type << 8) | | ||
1761 | ((uint32_t) ndlp->nlp_rpi & 0xff)); | ||
1762 | /* LOG change to ADISC */ | ||
1763 | /* FIND node DID adisc */ | ||
1764 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, | ||
1765 | "%d:0931 FIND node DID adisc " | ||
1766 | "Data: x%p x%x x%x x%x\n", | ||
1767 | phba->brd_no, | ||
1768 | ndlp, ndlp->nlp_DID, | ||
1769 | ndlp->nlp_flag, data1); | ||
1770 | spin_unlock_irq(phba->host->host_lock); | ||
1771 | return ndlp; | ||
1772 | } | ||
1773 | } | ||
1774 | } | ||
1775 | |||
1776 | if (order & NLP_SEARCH_REGLOGIN) { | ||
1777 | list_for_each_entry_safe(ndlp, next_ndlp, | ||
1778 | &phba->fc_reglogin_list, nlp_listp) { | ||
1779 | if (lpfc_matchdid(phba, ndlp, did)) { | 1725 | if (lpfc_matchdid(phba, ndlp, did)) { |
1780 | |||
1781 | data1 = (((uint32_t) ndlp->nlp_state << 24) | | 1726 | data1 = (((uint32_t) ndlp->nlp_state << 24) | |
1782 | ((uint32_t) ndlp->nlp_xri << 16) | | 1727 | ((uint32_t) ndlp->nlp_xri << 16) | |
1783 | ((uint32_t) ndlp->nlp_type << 8) | | 1728 | ((uint32_t) ndlp->nlp_type << 8) | |
1784 | ((uint32_t) ndlp->nlp_rpi & 0xff)); | 1729 | ((uint32_t) ndlp->nlp_rpi & 0xff)); |
1785 | /* LOG change to REGLOGIN */ | ||
1786 | /* FIND node DID reglogin */ | ||
1787 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, | 1730 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, |
1788 | "%d:0901 FIND node DID reglogin" | 1731 | "%d:0929 FIND node DID " |
1789 | " Data: x%p x%x x%x x%x\n", | 1732 | " Data: x%p x%x x%x x%x\n", |
1790 | phba->brd_no, | 1733 | phba->brd_no, |
1791 | ndlp, ndlp->nlp_DID, | 1734 | ndlp, ndlp->nlp_DID, |
@@ -1795,86 +1738,12 @@ lpfc_findnode_did(struct lpfc_hba * phba, uint32_t order, uint32_t did) | |||
1795 | } | 1738 | } |
1796 | } | 1739 | } |
1797 | } | 1740 | } |
1798 | |||
1799 | if (order & NLP_SEARCH_PRLI) { | ||
1800 | list_for_each_entry_safe(ndlp, next_ndlp, &phba->fc_prli_list, | ||
1801 | nlp_listp) { | ||
1802 | if (lpfc_matchdid(phba, ndlp, did)) { | ||
1803 | |||
1804 | data1 = (((uint32_t) ndlp->nlp_state << 24) | | ||
1805 | ((uint32_t) ndlp->nlp_xri << 16) | | ||
1806 | ((uint32_t) ndlp->nlp_type << 8) | | ||
1807 | ((uint32_t) ndlp->nlp_rpi & 0xff)); | ||
1808 | /* LOG change to PRLI */ | ||
1809 | /* FIND node DID prli */ | ||
1810 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, | ||
1811 | "%d:0902 FIND node DID prli " | ||
1812 | "Data: x%p x%x x%x x%x\n", | ||
1813 | phba->brd_no, | ||
1814 | ndlp, ndlp->nlp_DID, | ||
1815 | ndlp->nlp_flag, data1); | ||
1816 | spin_unlock_irq(phba->host->host_lock); | ||
1817 | return ndlp; | ||
1818 | } | ||
1819 | } | ||
1820 | } | ||
1821 | |||
1822 | if (order & NLP_SEARCH_NPR) { | ||
1823 | list_for_each_entry_safe(ndlp, next_ndlp, &phba->fc_npr_list, | ||
1824 | nlp_listp) { | ||
1825 | if (lpfc_matchdid(phba, ndlp, did)) { | ||
1826 | |||
1827 | data1 = (((uint32_t) ndlp->nlp_state << 24) | | ||
1828 | ((uint32_t) ndlp->nlp_xri << 16) | | ||
1829 | ((uint32_t) ndlp->nlp_type << 8) | | ||
1830 | ((uint32_t) ndlp->nlp_rpi & 0xff)); | ||
1831 | /* LOG change to NPR */ | ||
1832 | /* FIND node DID npr */ | ||
1833 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, | ||
1834 | "%d:0903 FIND node DID npr " | ||
1835 | "Data: x%p x%x x%x x%x\n", | ||
1836 | phba->brd_no, | ||
1837 | ndlp, ndlp->nlp_DID, | ||
1838 | ndlp->nlp_flag, data1); | ||
1839 | spin_unlock_irq(phba->host->host_lock); | ||
1840 | return ndlp; | ||
1841 | } | ||
1842 | } | ||
1843 | } | ||
1844 | |||
1845 | if (order & NLP_SEARCH_UNUSED) { | ||
1846 | list_for_each_entry_safe(ndlp, next_ndlp, &phba->fc_adisc_list, | ||
1847 | nlp_listp) { | ||
1848 | if (lpfc_matchdid(phba, ndlp, did)) { | ||
1849 | |||
1850 | data1 = (((uint32_t) ndlp->nlp_state << 24) | | ||
1851 | ((uint32_t) ndlp->nlp_xri << 16) | | ||
1852 | ((uint32_t) ndlp->nlp_type << 8) | | ||
1853 | ((uint32_t) ndlp->nlp_rpi & 0xff)); | ||
1854 | /* LOG change to UNUSED */ | ||
1855 | /* FIND node DID unused */ | ||
1856 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, | ||
1857 | "%d:0905 FIND node DID unused " | ||
1858 | "Data: x%p x%x x%x x%x\n", | ||
1859 | phba->brd_no, | ||
1860 | ndlp, ndlp->nlp_DID, | ||
1861 | ndlp->nlp_flag, data1); | ||
1862 | spin_unlock_irq(phba->host->host_lock); | ||
1863 | return ndlp; | ||
1864 | } | ||
1865 | } | ||
1866 | } | ||
1867 | |||
1868 | spin_unlock_irq(phba->host->host_lock); | 1741 | spin_unlock_irq(phba->host->host_lock); |
1869 | 1742 | ||
1870 | /* FIND node did <did> NOT FOUND */ | 1743 | /* FIND node did <did> NOT FOUND */ |
1871 | lpfc_printf_log(phba, | 1744 | lpfc_printf_log(phba, KERN_INFO, LOG_NODE, |
1872 | KERN_INFO, | ||
1873 | LOG_NODE, | ||
1874 | "%d:0932 FIND node did x%x NOT FOUND Data: x%x\n", | 1745 | "%d:0932 FIND node did x%x NOT FOUND Data: x%x\n", |
1875 | phba->brd_no, did, order); | 1746 | phba->brd_no, did, order); |
1876 | |||
1877 | /* no match found */ | ||
1878 | return NULL; | 1747 | return NULL; |
1879 | } | 1748 | } |
1880 | 1749 | ||
@@ -2036,7 +1905,7 @@ lpfc_disc_start(struct lpfc_hba * phba) | |||
2036 | if (rc == MBX_NOT_FINISHED) { | 1905 | if (rc == MBX_NOT_FINISHED) { |
2037 | mempool_free( mbox, phba->mbox_mem_pool); | 1906 | mempool_free( mbox, phba->mbox_mem_pool); |
2038 | lpfc_disc_flush_list(phba); | 1907 | lpfc_disc_flush_list(phba); |
2039 | psli->ring[(psli->ip_ring)].flag &= | 1908 | psli->ring[(psli->extra_ring)].flag &= |
2040 | ~LPFC_STOP_IOCB_EVENT; | 1909 | ~LPFC_STOP_IOCB_EVENT; |
2041 | psli->ring[(psli->fcp_ring)].flag &= | 1910 | psli->ring[(psli->fcp_ring)].flag &= |
2042 | ~LPFC_STOP_IOCB_EVENT; | 1911 | ~LPFC_STOP_IOCB_EVENT; |
@@ -2415,7 +2284,7 @@ lpfc_disc_timeout_handler(struct lpfc_hba *phba) | |||
2415 | 2284 | ||
2416 | if (clrlaerr) { | 2285 | if (clrlaerr) { |
2417 | lpfc_disc_flush_list(phba); | 2286 | lpfc_disc_flush_list(phba); |
2418 | psli->ring[(psli->ip_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 2287 | psli->ring[(psli->extra_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
2419 | psli->ring[(psli->fcp_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 2288 | psli->ring[(psli->fcp_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
2420 | psli->ring[(psli->next_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; | 2289 | psli->ring[(psli->next_ring)].flag &= ~LPFC_STOP_IOCB_EVENT; |
2421 | phba->hba_state = LPFC_HBA_READY; | 2290 | phba->hba_state = LPFC_HBA_READY; |