diff options
author | Axel Lin <axel.lin@ingics.com> | 2014-03-24 21:19:05 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-03-28 07:47:43 -0400 |
commit | 0e0cd9ea8961b82947a40471080e7968b634820e (patch) | |
tree | addfdd3a33b73cd952c4e9357d1007da76bc6426 /drivers/spi | |
parent | ba811addff3d29d1ea9861dbfc06e8ef80714f94 (diff) |
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')
-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) | |||
342 | /* Only alloc on first setup */ | 342 | /* Only alloc on first setup */ |
343 | chip = spi_get_ctldata(spi); | 343 | chip = spi_get_ctldata(spi); |
344 | if (chip == NULL) { | 344 | if (chip == NULL) { |
345 | chip = kcalloc(1, sizeof(struct chip_data), GFP_KERNEL); | 345 | chip = devm_kzalloc(&spi->dev, sizeof(struct chip_data), |
346 | GFP_KERNEL); | ||
346 | if (!chip) | 347 | if (!chip) |
347 | return -ENOMEM; | 348 | return -ENOMEM; |
348 | } | 349 | } |
@@ -353,7 +354,6 @@ static int dspi_setup_transfer(struct spi_device *spi, struct spi_transfer *t) | |||
353 | fmsz = spi->bits_per_word - 1; | 354 | fmsz = spi->bits_per_word - 1; |
354 | } else { | 355 | } else { |
355 | pr_err("Invalid wordsize\n"); | 356 | pr_err("Invalid wordsize\n"); |
356 | kfree(chip); | ||
357 | return -ENODEV; | 357 | return -ENODEV; |
358 | } | 358 | } |
359 | 359 | ||