RDMA/hns: ensure for-loop actually iterates and free's buffers
authorColin Ian King <colin.king@canonical.com>
Mon, 26 Mar 2018 15:10:18 +0000 (16:10 +0100)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 27 Mar 2018 21:06:34 +0000 (15:06 -0600)
The current for-loop zeros variable i and only loops once, hence
not all the buffers are free'd.  Fix this by setting i correctly.

Detected by CoverityScan, CID#1463415 ("Operands don't affect result")

Fixes: a5073d6054f7 ("RDMA/hns: Add eq support of hip08")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Yixian Liu <liuyixian@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index db2ff352d75f665b075d512e73dce619fdf230c1..ec638778661ccd7aadecb857bfdb9b8e59929524 100644 (file)
@@ -4383,7 +4383,7 @@ err_dma_alloc_buf:
        eq->l0_dma = 0;
 
        if (mhop_num == 1)
-               for (i -= i; i >= 0; i--)
+               for (i -= 1; i >= 0; i--)
                        dma_free_coherent(dev, buf_chk_sz, eq->buf[i],
                                          eq->buf_dma[i]);
        else if (mhop_num == 2) {