|
@@ -751,11 +751,13 @@ static void omap2_mcspi_cleanup(struct spi_device *spi)
|
|
|
mcspi = spi_master_get_devdata(spi->master);
|
|
|
mcspi_dma = &mcspi->dma_channels[spi->chip_select];
|
|
|
|
|
|
- /* Unlink controller state from context save list */
|
|
|
- cs = spi->controller_state;
|
|
|
- list_del(&cs->node);
|
|
|
+ if (spi->controller_state) {
|
|
|
+ /* Unlink controller state from context save list */
|
|
|
+ cs = spi->controller_state;
|
|
|
+ list_del(&cs->node);
|
|
|
|
|
|
- kfree(spi->controller_state);
|
|
|
+ kfree(spi->controller_state);
|
|
|
+ }
|
|
|
|
|
|
if (mcspi_dma->dma_rx_channel != -1) {
|
|
|
omap_free_dma(mcspi_dma->dma_rx_channel);
|