aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2014-03-24 21:19:05 -0400
committerMark Brown <broonie@linaro.org>2014-03-28 07:47:43 -0400
commit0e0cd9ea8961b82947a40471080e7968b634820e (patch)
treeaddfdd3a33b73cd952c4e9357d1007da76bc6426 /drivers/spi
parentba811addff3d29d1ea9861dbfc06e8ef80714f94 (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.c4
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