1. 24 4月, 2017 1 次提交
    • J
      Update ABORT processing for NVMET. · 86c67379
      James Smart 提交于
      The driver with nvme had this routine stubbed.
      
      Right now XRI_ABORTED_CQE is not handled and the FC NVMET
      Transport has a new API for the driver.
      
      Missing code path, new NVME abort API
      Update ABORT processing for NVMET
      
      There are 3 new FC NVMET Transport API/ template routines for NVMET:
      
      lpfc_nvmet_xmt_fcp_release
      This NVMET template callback routine called to release context
      associated with an IO This routine is ALWAYS called last, even
      if the IO was aborted or completed in error.
      
      lpfc_nvmet_xmt_fcp_abort
      This NVMET template callback routine called to abort an exchange that
      has an IO in progress
      
      nvmet_fc_rcv_fcp_req
      When the lpfc driver receives an ABTS, this NVME FC transport layer
      callback routine is called. For this case there are 2 paths thru the
      driver: the driver either has an outstanding exchange / context for the
      XRI to be aborted or not.  If not, a BA_RJT is issued otherwise a BA_ACC
      
      NVMET Driver abort paths:
      
      There are 2 paths for aborting an IO. The first one is we receive an IO and
      decide not to process it because of lack of resources. An unsolicated ABTS
      is immediately sent back to the initiator as a response.
      lpfc_nvmet_unsol_fcp_buffer
                  lpfc_nvmet_unsol_issue_abort  (XMIT_SEQUENCE_WQE)
      
      The second one is we sent the IO up to the NVMET transport layer to
      process, and for some reason the NVME Transport layer decided to abort the
      IO before it completes all its phases. For this case there are 2 paths
      thru the driver:
      the driver either has an outstanding TSEND/TRECEIVE/TRSP WQE or no
      outstanding WQEs are present for the exchange / context.
      lpfc_nvmet_xmt_fcp_abort
          if (LPFC_NVMET_IO_INP)
              lpfc_nvmet_sol_fcp_issue_abort  (ABORT_WQE)
                      lpfc_nvmet_sol_fcp_abort_cmp
          else
              lpfc_nvmet_unsol_fcp_issue_abort
                      lpfc_nvmet_unsol_issue_abort  (XMIT_SEQUENCE_WQE)
                              lpfc_nvmet_unsol_fcp_abort_cmp
      
      Context flags:
      LPFC_NVMET_IOP - his flag signifies an IO is in progress on the exchange.
      LPFC_NVMET_XBUSY  - this flag indicates the IO completed but the firmware
      is still busy with the corresponding exchange. The exchange should not be
      reused until after a XRI_ABORTED_CQE is received for that exchange.
      LPFC_NVMET_ABORT_OP - this flag signifies an ABORT_WQE was issued on the
      exchange.
      LPFC_NVMET_CTX_RLS  - this flag signifies a context free was requested,
      but we are deferring it due to an XBUSY or ABORT in progress.
      
      A ctxlock is added to the context structure that is used whenever these
      flags are set/read  within the context of an IO.
      The LPFC_NVMET_CTX_RLS flag is only set in the defer_relase routine when
      the transport has resolved all IO associated with the buffer. The flag is
      cleared when the CTX is associated with a new IO.
      
      An exchange can has both an LPFC_NVMET_XBUSY and a LPFC_NVMET_ABORT_OP
      condition active simultaneously. Both conditions must complete before the
      exchange is freed.
      When the abort callback (lpfc_nvmet_xmt_fcp_abort) is envoked:
      If there is an outstanding IO, the driver will issue an ABORT_WQE. This
      should result in 3 completions for the exchange:
      1) IO cmpl with XB bit set
      2) Abort WQE cmpl
      3) XRI_ABORTED_CQE cmpl
      For this scenerio, after completion #1, the NVMET Transport IO rsp
      callback is called.  After completion #2, no action is taken with respect
      to the exchange / context.  After completion #3, the exchange context is
      free for re-use on another IO.
      
      If there is no outstanding activity on the exchange, the driver will send a
      ABTS to the Initiator. Upon completion of this WQE, the exchange / context
      is freed for re-use on another IO.
      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>
      86c67379
  2. 23 2月, 2017 3 次提交
  3. 27 9月, 2016 1 次提交
    • B
      scsi: lpfc: Mark symbols static where possible · bd4b3e5c
      Baoyou Xie 提交于
      We get a few warnings when building kernel with W=1:
      drivers/scsi/lpfc/lpfc_sli.c:5693:1: warning: no previous prototype for 'lpfc_set_features' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_sli.c:8972:1: warning: no previous prototype for 'lpfc_sli_calc_ring' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_els.c:4621:1: warning: no previous prototype for 'lpfc_rdp_res_link_service' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_els.c:4633:1: warning: no previous prototype for 'lpfc_rdp_res_sfp_desc' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_els.c:4698:1: warning: no previous prototype for 'lpfc_rdp_res_link_error' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_els.c:4727:1: warning: no previous prototype for 'lpfc_rdp_res_bbc_desc' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_els.c:4752:1: warning: no previous prototype for 'lpfc_rdp_res_oed_temp_desc' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_els.c:4780:1: warning: no previous prototype for 'lpfc_rdp_res_oed_voltage_desc' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_els.c:4809:1: warning: no previous prototype for 'lpfc_rdp_res_oed_txbias_desc' [-Wmissing-prototypes]
      drivers/scsi/lpfc/lpfc_els.c:4838:1: warning: no previous prototype for 'lpfc_rdp_res_oed_txpower_desc' [-Wmissing-prototypes]
      ....
      
      In fact, these functions are only used in the file in which they are
      declared and don't need a declaration, but can be made static.  So this
      patch marks these functions with 'static'.
      Signed-off-by: NBaoyou Xie <baoyou.xie@linaro.org>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      bd4b3e5c
  4. 12 4月, 2016 2 次提交
  5. 27 10月, 2015 2 次提交
  6. 07 9月, 2015 1 次提交
  7. 06 6月, 2015 1 次提交
  8. 10 4月, 2015 1 次提交
  9. 17 9月, 2014 1 次提交
  10. 24 8月, 2013 1 次提交
  11. 27 6月, 2013 1 次提交
  12. 03 5月, 2013 1 次提交
  13. 10 4月, 2013 1 次提交
  14. 15 9月, 2012 1 次提交
  15. 14 9月, 2012 2 次提交
  16. 15 12月, 2011 3 次提交
  17. 17 10月, 2011 1 次提交
  18. 27 7月, 2011 1 次提交
    • J
      [SCSI] lpfc 8.3.25: Adapter Interface fixes and changes · 7851fe2c
      James Smart 提交于
      Adapter Interface fixes and changes
      
      - Modify the macro field from lpfc_init_vpi_vpi to lpfc_init_vfi_vpi
      - Add the new CQE_CODE_RECEIVE_V1 CQE Code, add code in the driver to handle
        the new Code the same as the CQE_CODE_RECEIVE code except that there are
        two new checks for this code that will cause the driver to use the new V1
        macros for rq_id and fcf_id.
      - Fix a bug in lpfc_prep_seq() where the size out of the first CQE was
        ONLY being used, even though multiple dmabufs make up the sequence,
        each have their own CQE with potentially different sizes.
      - Fix bug in lpfc_bsg_ct_unsol_event() where the ulpContext and ulpWord[3]
        fields of the XMIT_SEQUENCE64_CX IOCB were being calculated incorrectly.
      - Do physical to logical translation before indexing into the active
        XRI array.
      - Populate physical vpi in the iocb data structure.
      - Put the current accumulated total in each IOCB in the chain as we are
        walking thru then. The last IOCB in the chain should have the total
        length of the sequence.
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      7851fe2c
  19. 27 5月, 2011 1 次提交
  20. 02 5月, 2011 1 次提交
    • J
      [SCSI] lpfc 8.3.23: Miscellaneous fixes · 9589b062
      James Smart 提交于
      Miscellaneous fixes
      
      - Do not limit RPI Count to a minimum of 64
      - Fix FCFI incorrect on received unsolicited frames.
      - Save the FCFI returned in the REG_FCFI mailbox command if it was successful.
      - Fixed Vports not sending FDISC after lips.
      - Align based on the SLI4_PAGE_SIZE.
      - Fixed double byte swap on received RRQ.
      - Fixed mask size for the wq_id mask from 0x7F to 0x7FFF.
      - Clear FC_FABRIC flag when NPIV LOGO completes (and add a log message).
      - Modified driver to skip round robin only when ulpStatus==LOCAL_REJECT
        and word4=SEQUENCE_TIMEOUT to prevent FLOGI to disconnected FCF.
      - Don't add rport if driver unloading
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      9589b062
  21. 31 3月, 2011 1 次提交
  22. 19 2月, 2011 2 次提交
  23. 22 12月, 2010 2 次提交
    • J
      [SCSI] lpfc 8.3.20: Updates to FC discovery commands · 4042629e
      James Smart 提交于
      Updated commands used for ELS to utilize VPI
      Allocate RPI at node creation time and pass in ELS commnads.
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      4042629e
    • J
      [SCSI] lpfc 8.3.19: Add SLI4 FC Discovery support · 76a95d75
      James Smart 提交于
      Add SLI4 FC Discovery support
      
      - Replace READ_LA and READ_LA64 with READ_TOPOLOGY mailbox command.
      - Converted the old READ_LA structure to use bf_set/get instead of bit fields.
      - Rename HBA_FCOE_SUPPORT flag to HBA_FCOE_MODE. Flag now indicates function
        is running as SLI-4 FC or FCoE port. Make sure flag reset each time
        READ_REV completed as it can dynamically change.
      - Removed BDE union in the READ_TOPOLOGY mailbox command and added a define to
        define the ALPA MAP SIZE. Added FC Code for async events.
      - Added code to support new 16G link speed.
      - Define new set of values to keep track of valid user settable link speeds.
      - Used new link speed definitions to define link speed max and bitmap.
      - Redefined FDMI Port sppeds to be hax values and added the 16G value.
      - Added new CQE trailer code for FC Events.
      - Add lpfc_issue_init_vfi and lpfc_init_vfi_cmpl routines.
      - Replace many calls to the initial_flogi routine with lpfc_issue_init_vfi.
      - Add vp and vpi fields to the INIT_VFI mailbox command.
      - Addapt lpfc_hba_init_link routine for SLI4 use.
      - Use lpfc_hba_init_link call from lpfc_sli4_hba_setup.
      - Add a check for FC mode to register the FCFI before init link.
      - Convert lpfc_sli4_init_vpi to be called without a vpi (get it from vport).
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      76a95d75
  24. 26 10月, 2010 1 次提交
  25. 07 8月, 2010 1 次提交
    • J
      [SCSI] lpfc 8.3.16: FCoE Discovery and Failover Fixes · 38b92ef8
      James Smart 提交于
      - Add support for re-reg'ing changed VPI w/o unregister VPI
      - Copy WWN and state from old nodelist when target DID change.
      - Clean up old nodelist rport and put the nodelist when target DID change.
      - Clear the VFI_REGISTERED flag when UNREG_VFI completes.
      - Made both checks of port_state against LPFC_FLOGI and LPFC_FDISC
        non-inclusive for ignoring CVL events.
      - Added logic to stop retrying of the ongoing PLOGI and FDISC if
        transitioned back to the FCF rediscovery state in reaction to CVL.
      - Removed the dependency of scanning of all the available FCF table
        entries for bulding round-robin bitmap.
      - Use the lpfc_sli4_fcf_rr_read_fcf_rec() in responding to
        individual New FCF found event.
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      38b92ef8
  26. 28 7月, 2010 3 次提交
  27. 12 4月, 2010 2 次提交
  28. 11 4月, 2010 1 次提交