Преглед на файлове

i2c: imx: fix i2c resource leak with dma transfer

In i2c_imx_dma_xfer(), when dmaengine_submit() returns error,
the context goto label err_submit and then return. However, the
memory allocated for txdesc has not been freed yet, which
leads to resource leak.

Signed-off-by: Gao Pan <b54642@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Gao Pan преди 9 години
родител
ревизия
c552815312
променени са 1 файла, в които са добавени 1 реда и са изтрити 0 реда
  1. 1 0
      drivers/i2c/busses/i2c-imx.c

+ 1 - 0
drivers/i2c/busses/i2c-imx.c

@@ -387,6 +387,7 @@ static int i2c_imx_dma_xfer(struct imx_i2c_struct *i2c_imx,
 	return 0;
 	return 0;
 
 
 err_submit:
 err_submit:
+	dmaengine_terminate_all(dma->chan_using);
 err_desc:
 err_desc:
 	dma_unmap_single(chan_dev, dma->dma_buf,
 	dma_unmap_single(chan_dev, dma->dma_buf,
 			dma->dma_len, dma->dma_data_dir);
 			dma->dma_len, dma->dma_data_dir);