@@ -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.

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to