diff options
author | Axel Lin <axel.lin@ingics.com> | 2014-03-25 01:19:05 (GMT) |
---|---|---|
committer | Matthew Weigel <Matthew.Weigel@freescale.com> | 2014-12-11 18:37:40 (GMT) |
commit | 0e2c166707d78690131bedcd946c691d9bbc36c8 (patch) | |
tree | a049316f2f1b153b4ca0bed7f18637dfb14b379b /drivers/spi | |
parent | 18e92b67cb0977efb668713d16c6a18045d6b88e (diff) | |
download | linux-fsl-qoriq-0e2c166707d78690131bedcd946c691d9bbc36c8.tar.xz |
spi: fsl-dspi: Fix memory leak
The memory allocated for chip is not freed anywhere.
Convert to use devm_kzalloc to fix the memory leak.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit 0e0cd9ea8961b82947a40471080e7968b634820e)
Change-Id: Ia54f0ab47d9e36a375f66ea4c285b2f4ecc09ed4
Reviewed-on: http://git.am.freescale.net:8181/20089
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Zhengxiong Jin <Jason.Jin@freescale.com>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-fsl-dspi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 2249cb7..d565eee 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -342,7 +342,8 @@ static int dspi_setup_transfer(struct spi_device *spi, struct spi_transfer *t) /* Only alloc on first setup */ chip = spi_get_ctldata(spi); if (chip == NULL) { - chip = kcalloc(1, sizeof(struct chip_data), GFP_KERNEL); + chip = devm_kzalloc(&spi->dev, sizeof(struct chip_data), + GFP_KERNEL); if (!chip) return -ENOMEM; } @@ -353,7 +354,6 @@ static int dspi_setup_transfer(struct spi_device *spi, struct spi_transfer *t) fmsz = spi->bits_per_word - 1; } else { pr_err("Invalid wordsize\n"); - kfree(chip); return -ENODEV; } |