1. 06 2月, 2019 1 次提交
  2. 08 12月, 2018 1 次提交
  3. 21 9月, 2018 1 次提交
  4. 17 9月, 2018 1 次提交
  5. 12 9月, 2018 2 次提交
  6. 03 8月, 2018 2 次提交
    • J
      scsi: lpfc: Limit tracking of tgt queue depth in fast path · 2a5b7d62
      James Smart 提交于
      Performance is affected when target queue depth is tracked.  An atomic
      counter is incremented on the submission path which competes with it being
      decremented on the completion path.  In addition, multiple CPUs can
      simultaniously be manipulating this counter for the same ndlp.
      
      Reduce the overhead by only performing the target increment/decrement when
      the target queue depth is less than the overall adapter depth, thus is
      actually meaningful.
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <james.smart@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      2a5b7d62
    • J
      scsi: lpfc: Fix driver crash when re-registering NVME rports. · 93a3922d
      James Smart 提交于
      During remote port loss fault testing, the driver crashed with the
      following trace:
      
      general protection fault: 0000 [#1] SMP
      RIP: ... lpfc_nvme_register_port+0x250/0x480 [lpfc]
      Call Trace:
       lpfc_nlp_state_cleanup+0x1b3/0x7a0 [lpfc]
       lpfc_nlp_set_state+0xa6/0x1d0 [lpfc]
       lpfc_cmpl_prli_prli_issue+0x213/0x440
       lpfc_disc_state_machine+0x7e/0x1e0 [lpfc]
       lpfc_cmpl_els_prli+0x18a/0x200 [lpfc]
       lpfc_sli_sp_handle_rspiocb+0x3b5/0x6f0 [lpfc]
       lpfc_sli_handle_slow_ring_event_s4+0x161/0x240 [lpfc]
       lpfc_work_done+0x948/0x14c0 [lpfc]
       lpfc_do_work+0x16f/0x180 [lpfc]
       kthread+0xc9/0xe0
       ret_from_fork+0x55/0x80
      
      After registering a new remoteport, the driver is pulling an ndlp pointer
      from the lpfc rport associated with the private area of a newly registered
      remoteport. The private area is uninitialized, so it's garbage.
      
      Correct by pulling the the lpfc rport pointer from the entering ndlp point,
      then ndlp value from at rport. Note the entering ndlp may be replacing by
      the rport->ndlp due to an address change swap.
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <james.smart@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      93a3922d
  7. 11 7月, 2018 2 次提交
  8. 29 5月, 2018 2 次提交
  9. 08 5月, 2018 3 次提交
  10. 19 4月, 2018 5 次提交
  11. 15 3月, 2018 1 次提交
    • C
      scsi: lpfc: make several unions static, fix non-ANSI prototype · fab2e466
      Colin Ian King 提交于
      There are several unions that are local to the source and do not need to
      be in global scope, so make them static. Also add in a missing void
      parameter to functions lpfc_nvme_cmd_template and
      lpfc_nvmet_cmd_template to clean up non-ANSI warning.
      
      Cleans up sparse warnings:
      drivers/scsi/lpfc/lpfc_nvme.c:68:19: warning: symbol
      'lpfc_iread_cmd_template' was not declared. Should it be static?
      drivers/scsi/lpfc/lpfc_nvme.c:69:19: warning: symbol
      'lpfc_iwrite_cmd_template' was not declared. Should it be static?
      drivers/scsi/lpfc/lpfc_nvme.c:70:19: warning: symbol
      'lpfc_icmnd_cmd_template' was not declared. Should it be static?
      drivers/scsi/lpfc/lpfc_nvme.c:74:24: warning: non-ANSI function
      'lpfc_tsend_cmd_template' was not declared. Should it be static?
      drivers/scsi/lpfc/lpfc_nvmet.c:78:19: warning: symbol
      'lpfc_treceive_cmd_template' was not declared. Should it be static?
      drivers/scsi/lpfc/lpfc_nvmet.c:79:19: warning: symbol
      'lpfc_trsp_cmd_template' was not declared. Should it be static?
      drivers/scsi/lpfc/lpfc_nvmet.c:83:25: warning: non-ANSI function
      declaration of function 'lpfc_nvmet_cmd_template'
      Signed-off-by: NColin Ian King <colin.king@canonical.com>
      Acked-by: NJames Smart <james.smart@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      fab2e466
  12. 13 3月, 2018 2 次提交
  13. 23 2月, 2018 3 次提交
  14. 13 2月, 2018 3 次提交
    • J
      scsi: lpfc: Update 11.4.0.7 modified files for 2018 Copyright · 128bddac
      James Smart 提交于
      Updated Copyright in files updated 11.4.0.7
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <james.smart@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      128bddac
    • J
      scsi: lpfc: Fix nonrecovery of NVME controller after cable swap. · 815a9c43
      James Smart 提交于
      In a test that is doing large numbers of cable swaps on the target, the
      nvme controllers wouldn't reconnect.
      
      During the cable swaps, the targets n_port_id would change. This
      information was passed to the nvme-fc transport, in the new remoteport
      registration. However, the nvme-fc transport didn't update the n_port_id
      value in the remoteport struct when it reused an existing structure.
      Later, when a new association was attempted on the remoteport, the
      driver's NVME LS routine would use the stale n_port_id from the
      remoteport struct to address the LS. As the device is no longer at that
      address, the LS would go into never never land.
      
      Separately, the nvme-fc transport will be corrected to update the
      n_port_id value on a re-registration.
      
      However, for now, there's no reason to use the transports values.  The
      private pointer points to the drivers node structure and the node
      structure is up to date. Therefore, revise the LS routine to use the
      drivers data structures for the LS. Augmented the debug message for
      better debugging in the future.
      
      Also removed a duplicate if check that seems to have slipped in.
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <james.smart@broadcom.com>
      Reviewed-by: NHannes Reinecke <hare@suse.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      815a9c43
    • J
      scsi: lpfc: Fix IO failure during hba reset testing with nvme io. · 91455b85
      James Smart 提交于
      A stress test repeatedly resetting the adapter while performing io would
      eventually report I/O failures and missing nvme namespaces.
      
      The driver was setting the nvmefc_fcp_req->private pointer to NULL
      during the IO completion routine before upcalling done().  If the
      transport was also running an abort for that IO, the driver would fail
      the abort with message 6140. Failing the abort is not allowed by the
      nvme-fc transport, as it mandates that the io must be returned back to
      the transport. As that does not happen, the transport controller delete
      has an outstanding reference and can't complete teardown.
      
      The NULL-ing of the private pointer should be done only when the io is
      considered complete. It's complete when the adapter returns the exchange
      with the "exchange busy" flag clear.
      
      Move the NULL'ing of the structure to the done case. This leaves the io
      contexts set while it is busy and until the subsequent XRI_ABORTED
      completion which returns the exchange is received.
      Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
      Signed-off-by: NJames Smart <james.smart@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      91455b85
  15. 21 12月, 2017 3 次提交
  16. 05 12月, 2017 5 次提交
  17. 17 10月, 2017 1 次提交
  18. 03 10月, 2017 2 次提交