spi: fsl: Kill mpc8xxx_spi_cleanup and convert fsl_espi_setup to use devm_kzalloc
PATCH 1/1 spi: fsl: Kill mpc8xxx_spi_cleanup and convert fsl_espi_setup to use devm_kzalloc
In current code, master->cleanup and master->setup are not set in the same function. This makes it hard to read and not good for code maintain. One example is in fsl-spi.c, master->cleanup is overrided in mpc8xxx_spi_probe() which leads to a memory leak.
This patch removes mpc8xxx_spi_cleanup() and converts fsl_espi_setup to use devm_kzalloc so we don't need to take care of freeing memory.
--- drivers/spi/spi-fsl-espi.c | 2 +- drivers/spi/spi-fsl-lib.c | 6 ------ drivers/spi/spi-fsl-lib.h | 1 - 3 files changed, 1 insertion(+), 8 deletions(-)
drivers/spi/spi-fsl-espi.c +1 -1
@@ -457,7 +457,7 @@ static int fsl_espi_setup(struct spi_device *spi)return -EINVAL ;if (!cs) { - cs =kzalloc (sizeof *cs,GFP_KERNEL ); + cs =devm_kzalloc (&spi->dev,sizeof (*cs),GFP_KERNEL );if (!cs)return -ENOMEM ; spi->controller_state = cs;
drivers/spi/spi-fsl-lib.c +0 -6
@@ -99,11 +99,6 @@ int mpc8xxx_spi_transfer(struct spi_device *spi,return 0 ; } -void mpc8xxx_spi_cleanup (struct spi_device *spi) -{ -kfree (spi->controller_state); -} -const char *mpc8xxx_spi_strmode (unsigned int flags) {if (flags &SPI_QE_CPU_MODE ) {
@@ -134,7 +129,6 @@ int mpc8xxx_spi_probe(struct device *dev, struct resource *mem, | SPI_LSB_FIRST | SPI_LOOP; master->transfer = mpc8xxx_spi_transfer; - master->cleanup = mpc8xxx_spi_cleanup; master->dev.of_node = dev->of_node; mpc8xxx_spi =spi_master_get_devdata (master);
drivers/spi/spi-fsl-lib.h +0 -1
@@ -124,7 +124,6 @@ extern struct mpc8xxx_spi_probe_info *to_of_pinfo(extern int mpc8xxx_spi_bufs (struct mpc8xxx_spi *mspi,struct spi_transfer *t,unsigned int len);extern int mpc8xxx_spi_transfer (struct spi_device *spi,struct spi_message *m); -extern void mpc8xxx_spi_cleanup (struct spi_device *spi);extern const char *mpc8xxx_spi_strmode (unsigned int flags);extern int mpc8xxx_spi_probe (struct device *dev,struct resource *mem,unsigned int irq);
Signature · 8 lines
1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Mark Brown
AppliedQuoted 4 lines · Axel Lin
In current code,
master->cleanupandmaster->setupare not set in the same function. This makes it hard to read and not good for code maintain. One example is infsl-spi.c,master->cleanupis overrided inmpc8xxx_spi_probe()which leads to a memory leak.
Applied, thanks.