Messages in this thread | | | Date | Tue, 14 May 2013 12:53:31 +0300 | From | Illia Smyrnov <> | Subject | Re: [PATCH] spi: spi-omap2-mcspi.c: Add dts for slave device configuration. |
| |
> @@ -745,6 +781,11 @@ static int omap2_mcspi_setup_transfer(struct > spi_device *spi, > mcspi = spi_master_get_devdata(spi->master); > spi_cntrl = mcspi->master; > > + if (!cd && spi->dev.of_node) { > + cd = omap2_mcspi_get_slave_ctrldata(spi); > + spi->controller_data = cd;
Here you call omap2_mcspi_get_slave_ctrldata function that allocate memory for cd structure, but this memory never freed.
Also, why do you read DT data in omap2_mcspi_setup_transfer function? Under certain conditions the omap2_mcspi_setup_transfer function may be calling for each transfer and each call it will check (!cd && spi->dev.of_node) condition.
Consider to move DT data read code from omap2_mcspi_setup_transfer to omap2_mcspi_setup function and free spi->controller_data pointer in omap2_mcspi_cleanup function.
| |