1. 02 3月, 2022 2 次提交
  2. 07 12月, 2021 1 次提交
  3. 21 10月, 2021 3 次提交
  4. 17 10月, 2021 2 次提交
  5. 29 9月, 2021 1 次提交
  6. 15 9月, 2021 3 次提交
    • J
      scsi: lpfc: Improve PBDE checks during SGL processing · 315b3fd1
      James Smart 提交于
      The PBDE feature, setting payload buffer address explicitly in the WQE so
      it doesn't have to be fetched from the SGL, only makes sense when there is
      a single buffer for the I/O. When there are multiple buffers it actually
      hurts performance as the SGL subsequently has to be fetched.
      
      Rework the SGL logic to only use PBDE when a single buffer.
      
      Link: https://lore.kernel.org/r/20210910233159.115896-14-jsmart2021@gmail.comCo-developed-by: NJustin Tee <justin.tee@broadcom.com>
      Signed-off-by: NJustin Tee <justin.tee@broadcom.com>
      Signed-off-by: NJames Smart <jsmart2021@gmail.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      315b3fd1
    • J
      scsi: lpfc: Fix I/O block after enabling managed congestion mode · 3ea998cb
      James Smart 提交于
      If the congestion management framework dynamically enables, it may do so
      while I/O is in flight. The updates of cmf info due to inflight I/O
      completing may happen before values have been initialized.
      
      Fix by ensure cmf_max_bytes_per_interval is initialized when checking
      bandwidth utilization for SCSI layer blocking.
      
      Link: https://lore.kernel.org/r/20210910233159.115896-12-jsmart2021@gmail.comCo-developed-by: NJustin Tee <justin.tee@broadcom.com>
      Signed-off-by: NJustin Tee <justin.tee@broadcom.com>
      Signed-off-by: NJames Smart <jsmart2021@gmail.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      3ea998cb
    • J
      scsi: lpfc: Fix EEH support for NVMe I/O · 25ac2c97
      James Smart 提交于
      Injecting errors on the PCI slot while the driver is handling NVMe I/O will
      cause crashes and hangs.
      
      There are several rather difficult scenarios occurring. The main issue is
      that the adapter can report a PCI error before or simultaneously to the PCI
      subsystem reporting the error. Both paths have different entry points and
      currently there is no interlock between them. Thus multiple teardown paths
      are competing and all heck breaks loose.
      
      Complicating things is the NVMs path. To a large degree, I/O was able to be
      shutdown for a full FC port on the SCSI stack. But on NVMe, there isn't a
      similar call. At best, it works on a per-controller basis, but even at the
      controller level, it's a controller "reset" call. All of which means I/O is
      still flowing on different CPUs with reset paths expecting hw access
      (mailbox commands) to execute properly.
      
      The following modifications are made:
      
       - A new flag is set in PCI error entrypoints so the driver can track being
         called by that path.
      
       - An interlock is added in the SLI hw error path and the PCI error path
         such that only one of the paths proceeds with the teardown logic.
      
       - RPI cleanup is patched such that RPIs are marked unregistered w/o mbx
         cmds in cases of hw error.
      
       - If entering the SLI port re-init calls, a case where SLI error teardown
         was quick and beat the PCI calls now reporting error, check whether the
         SLI port is still live on the PCI bus.
      
       - In the PCI reset code to bring the adapter back, recheck the IRQ
         settings. Different checks for SLI3 vs SLI4.
      
       - In I/O completions, that may be called as part of the cleanup or
         underway just before the hw error, check the state of the adapter.  If
         in error, shortcut handling that would expect further adapter
         completions as the hw error won't be sending them.
      
       - In routines waiting on I/O completions, which may have been in progress
         prior to the hw error, detect the device is being torn down and abort
         from their waits and just give up. This points to a larger issue in the
         driver on ref-counting for data structures, as it doesn't have
         ref-counting on q and port structures. We'll do this fix for now as it
         would be a major rework to be done differently.
      
       - Fix the NVMe cleanup to simulate NVMe I/O completions if I/O is being
         failed back due to hw error.
      
       - In I/O buf allocation, done at the start of new I/Os, check hw state and
         fail if hw error.
      
      Link: https://lore.kernel.org/r/20210910233159.115896-10-jsmart2021@gmail.comCo-developed-by: NJustin Tee <justin.tee@broadcom.com>
      Signed-off-by: NJustin Tee <justin.tee@broadcom.com>
      Signed-off-by: NJames Smart <jsmart2021@gmail.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      25ac2c97
  7. 14 9月, 2021 2 次提交
  8. 25 8月, 2021 3 次提交
  9. 12 8月, 2021 1 次提交
  10. 27 7月, 2021 1 次提交
  11. 19 7月, 2021 1 次提交
  12. 19 6月, 2021 1 次提交
  13. 10 6月, 2021 3 次提交
  14. 01 6月, 2021 1 次提交
  15. 22 5月, 2021 1 次提交
  16. 13 4月, 2021 1 次提交
  17. 16 3月, 2021 1 次提交
    • L
      scsi: lpfc: Fix a bunch of kernel-doc misdemeanours · 0bb87e01
      Lee Jones 提交于
      Fixes the following W=1 kernel build warning(s):
      
       drivers/scsi/lpfc/lpfc_scsi.c:746: warning: expecting prototype for lpfc_release_scsi_buf(). Prototype was for lpfc_release_scsi_buf_s3() instead
       drivers/scsi/lpfc/lpfc_scsi.c:979: warning: expecting prototype for App checking is required for(). Prototype was for BG_ERR_CHECK() instead
       drivers/scsi/lpfc/lpfc_scsi.c:3701: warning: Function parameter or member 'vport' not described in 'lpfc_scsi_prep_cmnd_buf'
       drivers/scsi/lpfc/lpfc_scsi.c:3701: warning: Excess function parameter 'phba' description in 'lpfc_scsi_prep_cmnd_buf'
       drivers/scsi/lpfc/lpfc_scsi.c:3717: warning: Function parameter or member 'fcpi_parm' not described in 'lpfc_send_scsi_error_event'
       drivers/scsi/lpfc/lpfc_scsi.c:3717: warning: Excess function parameter 'rsp_iocb' description in 'lpfc_send_scsi_error_event'
       drivers/scsi/lpfc/lpfc_scsi.c:3837: warning: Function parameter or member 'fcpi_parm' not described in 'lpfc_handle_fcp_err'
       drivers/scsi/lpfc/lpfc_scsi.c:3837: warning: expecting prototype for lpfc_handler_fcp_err(). Prototype was for lpfc_handle_fcp_err() instead
       drivers/scsi/lpfc/lpfc_scsi.c:4021: warning: Function parameter or member 'wcqe' not described in 'lpfc_fcp_io_cmd_wqe_cmpl'
       drivers/scsi/lpfc/lpfc_scsi.c:4021: warning: Excess function parameter 'pwqeOut' description in 'lpfc_fcp_io_cmd_wqe_cmpl'
       drivers/scsi/lpfc/lpfc_scsi.c:4621: warning: Function parameter or member 'vport' not described in 'lpfc_scsi_prep_cmnd_buf_s3'
       drivers/scsi/lpfc/lpfc_scsi.c:4621: warning: Excess function parameter 'phba' description in 'lpfc_scsi_prep_cmnd_buf_s3'
       drivers/scsi/lpfc/lpfc_scsi.c:4698: warning: Function parameter or member 'vport' not described in 'lpfc_scsi_prep_cmnd_buf_s4'
       drivers/scsi/lpfc/lpfc_scsi.c:4698: warning: Excess function parameter 'phba' description in 'lpfc_scsi_prep_cmnd_buf_s4'
       drivers/scsi/lpfc/lpfc_scsi.c:4954: warning: expecting prototype for lpfc_taskmgmt_def_cmpl(). Prototype was for lpfc_tskmgmt_def_cmpl() instead
       drivers/scsi/lpfc/lpfc_scsi.c:5094: warning: expecting prototype for lpfc_poll_rearm_time(). Prototype was for lpfc_poll_rearm_timer() instead
      
      Link: https://lore.kernel.org/r/20210312094738.2207817-4-lee.jones@linaro.org
      Cc: James Smart <james.smart@broadcom.com>
      Cc: Dick Kennedy <dick.kennedy@broadcom.com>
      Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
      Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
      Cc: linux-scsi@vger.kernel.org
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      0bb87e01
  18. 05 3月, 2021 4 次提交
  19. 15 1月, 2021 1 次提交
  20. 08 1月, 2021 3 次提交
  21. 20 11月, 2020 1 次提交
  22. 17 11月, 2020 3 次提交