diff options
author | James Smart <jsmart2021@gmail.com> | 2018-02-22 19:18:48 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2018-02-23 04:39:29 +0300 |
commit | 0bc2b7c5317bd51df571e9d1131547901215f6c9 (patch) | |
tree | e33cfe55cf2a5ce43dbbb5d9a88e5ff8b9dcd97e /drivers/scsi/lpfc/lpfc_scsi.c | |
parent | 1feb8204a12ed7987bffa75311754edc1367680f (diff) | |
download | linux-0bc2b7c5317bd51df571e9d1131547901215f6c9.tar.xz |
scsi: lpfc: Add embedded data pointers for enhanced performance
The current driver isn't taking advantage of a performance hint whereby
the initial data buffer descriptor can be placed in the WQE as well as
the SGL.
Add the logic to detect support for the feature and to use it when
supported.
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_scsi.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_scsi.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index c595046a521b..fb81e8a8fb1c 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c @@ -3304,8 +3304,12 @@ lpfc_scsi_prep_dma_buf_s4(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd) dma_offset += dma_len; sgl++; } - /* setup the performance hint (first data BDE) if enabled */ - if (phba->sli3_options & LPFC_SLI4_PERFH_ENABLED) { + /* + * Setup the first Payload BDE. For FCoE we just key off + * Performance Hints, for FC we utilize fcp_embed_pbde. + */ + if ((phba->sli3_options & LPFC_SLI4_PERFH_ENABLED) || + phba->fcp_embed_pbde) { bde = (struct ulp_bde64 *) &(iocb_cmd->unsli3.sli3Words[5]); bde->addrLow = first_data_sgl->addr_lo; |