aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-dw.c
diff options
context:
space:
mode:
authorBaruch Siach <baruch@tkos.co.il>2013-12-30 13:30:46 -0500
committerMark Brown <broonie@linaro.org>2013-12-31 07:30:25 -0500
commit43f627ac9de42607b2cdcc7a41f2bcc82187e06a (patch)
tree72e6f4a528d01130863f559c60aed0223b765d18 /drivers/spi/spi-dw.c
parent020fe3fe11255cc3d8e67d5e53705c48deb19376 (diff)
spi: dw: fix memory leak on error path
Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/spi/spi-dw.c')
-rw-r--r--drivers/spi/spi-dw.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c
index 48ec161d6eed..bf98d63d92b3 100644
--- a/drivers/spi/spi-dw.c
+++ b/drivers/spi/spi-dw.c
@@ -619,9 +619,11 @@ static int dw_spi_setup(struct spi_device *spi)
619 /* Only alloc on first setup */ 619 /* Only alloc on first setup */
620 chip = spi_get_ctldata(spi); 620 chip = spi_get_ctldata(spi);
621 if (!chip) { 621 if (!chip) {
622 chip = kzalloc(sizeof(struct chip_data), GFP_KERNEL); 622 chip = devm_kzalloc(&spi->dev, sizeof(struct chip_data),
623 GFP_KERNEL);
623 if (!chip) 624 if (!chip)
624 return -ENOMEM; 625 return -ENOMEM;
626 spi_set_ctldata(spi, chip);
625 } 627 }
626 628
627 /* 629 /*
@@ -666,7 +668,6 @@ static int dw_spi_setup(struct spi_device *spi)
666 | (spi->mode << SPI_MODE_OFFSET) 668 | (spi->mode << SPI_MODE_OFFSET)
667 | (chip->tmode << SPI_TMOD_OFFSET); 669 | (chip->tmode << SPI_TMOD_OFFSET);
668 670
669 spi_set_ctldata(spi, chip);
670 return 0; 671 return 0;
671} 672}
672 673