IB/isert: do not ignore errors in dma_map_single()
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Fri, 21 Oct 2016 22:01:21 +0000 (01:01 +0300)
committerDoug Ledford <dledford@redhat.com>
Wed, 14 Dec 2016 17:51:31 +0000 (12:51 -0500)
There are several places, where errors in dma_map_single() are
ignored. The patch fixes them.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/ulp/isert/ib_isert.c

index 6dd43f63238e8e68cbcd97b37947af039589a207..f0ba5f83b02c01e5d03924360ab1e26e2548314b 100644 (file)
@@ -1851,6 +1851,8 @@ isert_put_response(struct iscsi_conn *conn, struct iscsi_cmd *cmd)
                isert_cmd->pdu_buf_dma = ib_dma_map_single(ib_dev,
                                (void *)cmd->sense_buffer, pdu_len,
                                DMA_TO_DEVICE);
+               if (ib_dma_mapping_error(ib_dev, isert_cmd->pdu_buf_dma))
+                       return -ENOMEM;
 
                isert_cmd->pdu_buf_len = pdu_len;
                tx_dsg->addr    = isert_cmd->pdu_buf_dma;
@@ -1978,6 +1980,8 @@ isert_put_reject(struct iscsi_cmd *cmd, struct iscsi_conn *conn)
        isert_cmd->pdu_buf_dma = ib_dma_map_single(ib_dev,
                        (void *)cmd->buf_ptr, ISCSI_HDR_LEN,
                        DMA_TO_DEVICE);
+       if (ib_dma_mapping_error(ib_dev, isert_cmd->pdu_buf_dma))
+               return -ENOMEM;
        isert_cmd->pdu_buf_len = ISCSI_HDR_LEN;
        tx_dsg->addr    = isert_cmd->pdu_buf_dma;
        tx_dsg->length  = ISCSI_HDR_LEN;
@@ -2018,6 +2022,8 @@ isert_put_text_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn)
 
                isert_cmd->pdu_buf_dma = ib_dma_map_single(ib_dev,
                                txt_rsp_buf, txt_rsp_len, DMA_TO_DEVICE);
+               if (ib_dma_mapping_error(ib_dev, isert_cmd->pdu_buf_dma))
+                       return -ENOMEM;
 
                isert_cmd->pdu_buf_len = txt_rsp_len;
                tx_dsg->addr    = isert_cmd->pdu_buf_dma;