When a command gets added to a transaction for the AP->command
channel we set the DMA address of its scatterlist entry, but not
its DMA length.  Fix this bug.

Signed-off-by: Alex Elder <el...@linaro.org>
---
 drivers/net/ipa/gsi_trans.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ipa/gsi_trans.c b/drivers/net/ipa/gsi_trans.c
index 2fd21d75367d..bdbfeed359db 100644
--- a/drivers/net/ipa/gsi_trans.c
+++ b/drivers/net/ipa/gsi_trans.c
@@ -399,13 +399,14 @@ void gsi_trans_cmd_add(struct gsi_trans *trans, void 
*buf, u32 size,
        /* assert(which < trans->tre_count); */
 
        /* Set the page information for the buffer.  We also need to fill in
-        * the DMA address for the buffer (something dma_map_sg() normally
-        * does).
+        * the DMA address and length for the buffer (something dma_map_sg()
+        * normally does).
         */
        sg = &trans->sgl[which];
 
        sg_set_buf(sg, buf, size);
        sg_dma_address(sg) = addr;
+       sg_dma_len(sg) = sg->length;
 
        info = &trans->info[which];
        info->opcode = opcode;
-- 
2.20.1

Reply via email to