Message ID | 20220506205548.61644-1-jsmart2021@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | lpfc: Correct BDE DMA address assignment for GEN_REQ_WQE | expand |
On Fri, 6 May 2022 13:55:48 -0700, James Smart wrote: > Garbage FCoE CT frames are transmitted on the wire because of bad DMA ptr > addresses filled in the GEN_REQ_WQE. > > The __lpfc_sli_prep_gen_req_s4() routine is using the wrong buffer for > the payload address. Change the dma buffer assignment from the bmp buffer > to the bpl buffer. > > [...] Applied to 5.18/scsi-fixes, thanks! [1/1] lpfc: Correct BDE DMA address assignment for GEN_REQ_WQE https://git.kernel.org/mkp/scsi/c/775266207105
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 79d2ef5f0f05..6ed696c4602a 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -10728,10 +10728,10 @@ __lpfc_sli_prep_gen_req_s4(struct lpfc_iocbq *cmdiocbq, struct lpfc_dmabuf *bmp, /* Words 0 - 2 */ bde = (struct ulp_bde64_le *)&cmdwqe->generic.bde; - bde->addr_low = cpu_to_le32(putPaddrLow(bmp->phys)); - bde->addr_high = cpu_to_le32(putPaddrHigh(bmp->phys)); + bde->addr_low = bpl->addr_low; + bde->addr_high = bpl->addr_high; bde->type_size = cpu_to_le32(xmit_len); - bde->type_size |= cpu_to_le32(ULP_BDE64_TYPE_BLP_64); + bde->type_size |= cpu_to_le32(ULP_BDE64_TYPE_BDE_64); /* Word 3 */ cmdwqe->gen_req.request_payload_len = xmit_len;