diff options
author | Axel Lin <axel.lin@ingics.com> | 2014-03-25 09:19:05 +0800 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-03-28 11:47:43 +0000 |
commit | 0e0cd9ea8961b82947a40471080e7968b634820e (patch) | |
tree | addfdd3a33b73cd952c4e9357d1007da76bc6426 /drivers/spi/spi-fsl-dspi.c | |
parent | ba811addff3d29d1ea9861dbfc06e8ef80714f94 (diff) | |
download | lwn-0e0cd9ea8961b82947a40471080e7968b634820e.tar.gz lwn-0e0cd9ea8961b82947a40471080e7968b634820e.zip |
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>
Diffstat (limited to 'drivers/spi/spi-fsl-dspi.c')
-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 7f0dddb21833..c5ecfc1240ab 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; } |