net: ipa: set DMA length in gsi_trans_cmd_add()
authorAlex Elder <elder@linaro.org>
Thu, 7 May 2020 19:14:03 +0000 (14:14 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 May 2020 21:00:29 +0000 (14:00 -0700)
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 <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ipa/gsi_trans.c

index 2fd21d75367d21ceb720fe9fdf1c36227c3723df..bdbfeed359db35d5b09b05eea5b7c3379171c1ea 100644 (file)
@@ -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;