diff mbox

spi: dw: Don't call kfree for memory allocated by devm_kzalloc

Message ID 1395710723.29281.3.camel@phoenix (mailing list archive)
State Accepted
Commit c63f5da00845143de621e991ea186be0829647ee
Headers show

Commit Message

Axel Lin March 25, 2014, 1:25 a.m. UTC
With devm_kzalloc, the memory is automatically freed when spi_device detach from
the bus.

Fixes: commit 04f421e7b0b1 (spi: dw: use managed resources)
Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/spi/spi-dw.c | 7 -------
 1 file changed, 7 deletions(-)

Comments

Baruch Siach March 25, 2014, 4:16 a.m. UTC | #1
Hi Axel Lin,

On Tue, Mar 25, 2014 at 09:25:23AM +0800, Axel Lin wrote:
> With devm_kzalloc, the memory is automatically freed when spi_device detach from
> the bus.
> 
> Fixes: commit 04f421e7b0b1 (spi: dw: use managed resources)

The devm_kzalloc for this struct was introduced in 43f627ac9de42 (spi: dw: fix 
memory leak on error path). Other than that:

Acked-by: Baruch Siach <baruch@tkos.co.il>

Thanks,
baruch

> Signed-off-by: Axel Lin <axel.lin@ingics.com>
> ---
>  drivers/spi/spi-dw.c | 7 -------
>  1 file changed, 7 deletions(-)
> 
> diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c
> index 8b7e4a3..712ac562 100644
> --- a/drivers/spi/spi-dw.c
> +++ b/drivers/spi/spi-dw.c
> @@ -664,12 +664,6 @@ static int dw_spi_setup(struct spi_device *spi)
>  	return 0;
>  }
>  
> -static void dw_spi_cleanup(struct spi_device *spi)
> -{
> -	struct chip_data *chip = spi_get_ctldata(spi);
> -	kfree(chip);
> -}
> -
>  static int init_queue(struct dw_spi *dws)
>  {
>  	INIT_LIST_HEAD(&dws->queue);
> @@ -799,7 +793,6 @@ int dw_spi_add_host(struct device *dev, struct dw_spi *dws)
>  	master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16);
>  	master->bus_num = dws->bus_num;
>  	master->num_chipselect = dws->num_cs;
> -	master->cleanup = dw_spi_cleanup;
>  	master->setup = dw_spi_setup;
>  	master->transfer = dw_spi_transfer;
>  	master->max_speed_hz = dws->max_freq;
> -- 
> 1.8.3.2
diff mbox

Patch

diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c
index 8b7e4a3..712ac562 100644
--- a/drivers/spi/spi-dw.c
+++ b/drivers/spi/spi-dw.c
@@ -664,12 +664,6 @@  static int dw_spi_setup(struct spi_device *spi)
 	return 0;
 }
 
-static void dw_spi_cleanup(struct spi_device *spi)
-{
-	struct chip_data *chip = spi_get_ctldata(spi);
-	kfree(chip);
-}
-
 static int init_queue(struct dw_spi *dws)
 {
 	INIT_LIST_HEAD(&dws->queue);
@@ -799,7 +793,6 @@  int dw_spi_add_host(struct device *dev, struct dw_spi *dws)
 	master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16);
 	master->bus_num = dws->bus_num;
 	master->num_chipselect = dws->num_cs;
-	master->cleanup = dw_spi_cleanup;
 	master->setup = dw_spi_setup;
 	master->transfer = dw_spi_transfer;
 	master->max_speed_hz = dws->max_freq;