1. 20 8月, 2019 1 次提交
    • J
      scsi: lpfc: Fix port relogin failure due to GID_FT interaction · 57178b92
      James Smart 提交于
      In cases of remote-port-side cable pull/replug, there happens to be a
      target that upon replug will send the port a PLOGI, a PRLI, and a LOGO.
      When this sequence is received by the driver, the PLOGI accepted and a
      GFT_ID is issued to find the protocol support for the remote port. While
      the GFT_ID is outstanding, a LOGO is received. The driver logs the remote
      port out and unregisters the RPI and schedules a new PLOGI transmission.
      However, the GFT_ID was not terminated. When it completed, the driver
      attempted to transition the remote port to PRLI transmission, which cancels
      the PLOGI scheduling. The PRLI transmit attempt is rejected by the adapter
      as the remote port is not logged in. No retry is attempted as it's expected
      the logout is noted and the supposedly scheduled PLOGI should address the
      state. As there is no PLOGI, the remote port does not get re-discovered.
      
      Fix by aborting the outstanding GFT_ID if the related remote port is logged
      out.
      
      Ensure a PRLI transmit attempt only occurs if the remote port is logging
      in. This avoids the incorrect attempt while logged out.
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <jsmart2021@gmail.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      57178b92
  2. 09 4月, 2019 1 次提交
  3. 04 4月, 2019 3 次提交
  4. 06 2月, 2019 2 次提交
  5. 08 12月, 2018 2 次提交
    • J
      scsi: lpfc: Fix discovery failures during port failovers with lots of vports · dea16bda
      James Smart 提交于
      The driver is getting hit with 100s of RSCNs during remote port address
      changes. Each of those RSCN's ends up generating UNREG_RPI and REG_PRI
      mailbox commands.  The discovery engine within the driver doesn't wait for
      the mailbox command completions. Instead it sets state flags and moves
      forward. At some point, there's a massive backlog of mailbox commands which
      take time for the adapter to process. Additionally, it appears there were
      duplicate events from the switch so the driver generated duplicate mailbox
      commands for the same remote port.  During this window, failures on PLOGI
      and PRLI ELS's are see as the adapter is rejecting them as they are for
      remote ports that still have pending mailbox commands.
      
      Streamline the discovery engine so that PLOGI log checks for outstanding
      UNREG_RPIs and defer the processing until the commands complete. This
      better synchronizes the ELS transmission vs the RPI registrations.
      
      Filter out multiple UNREG_RPIs being queued up for the same remote port.
      
      Beef up log messages in this area.
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <jsmart2021@gmail.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      dea16bda
    • J
      scsi: lpfc: refactor mailbox structure context fields · 3e1f0718
      James Smart 提交于
      The driver data structure for managing a mailbox command contained two
      context fields. Unfortunately, the context were considered "generic" to be
      used at the whim of the command code.  Of course, one section of code used
      fields this way, while another did it that way, and eventually there were
      mixups.
      
      Refactored the structure so that the generic contexts become a node context
      and a buffer context and all code standardizes on their use.
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <jsmart2021@gmail.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      3e1f0718
  6. 07 11月, 2018 3 次提交
  7. 12 9月, 2018 1 次提交
  8. 03 8月, 2018 2 次提交
  9. 11 7月, 2018 1 次提交
  10. 29 5月, 2018 1 次提交
  11. 19 4月, 2018 1 次提交
  12. 13 3月, 2018 1 次提交
  13. 13 2月, 2018 2 次提交
  14. 21 12月, 2017 3 次提交
  15. 03 10月, 2017 1 次提交
  16. 25 8月, 2017 3 次提交
  17. 01 6月, 2017 1 次提交
  18. 17 5月, 2017 1 次提交
  19. 24 4月, 2017 1 次提交
    • J
      Fix implicit logo and RSCN handling for NVMET · 1c5b12f7
      James Smart 提交于
      NVMET didn't have any RSCN handling at all and
      would not execute implicit LOGO when receiving a PLOGI
      from an rport that NVMET had in state UNMAPPED.
      
      Clean up the logic in lpfc_nlp_state_cleanup for
      initiators (FCP and NVME). NVMET should not respond to
      RSCN including allocating new ndlps so this code was
      conditionalized when nvmet_support is true.  The check
      for NLP_RCV_PLOGI in lpfc_setup_disc_node was moved
      below the check for nvmet_support to allow the NVMET
      to recover initiator nodes correctly.  The implicit
      logo was introduced with lpfc_rcv_plogi when NVMET gets
      a PLOGI on an ndlp in UNMAPPED state.  The RSCN handling
      was modified to not respond to an RSCN in NVMET.  Instead
      NVMET sends a GID_FT and determines if an NVMEP_INITIATOR
      it has is UNMAPPED but no longer in the zone membership.
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <james.smart@broadcom.com>
      Reviewed-by: NJohannes Thumshirn <jthumshirn@suse.de>
      1c5b12f7
  20. 23 2月, 2017 5 次提交
  21. 12 4月, 2016 2 次提交
  22. 22 12月, 2015 2 次提交