can: mcp251x: Convert to devm-* API
authorAlexander Shiyan <shc_work@mail.ru>
Sun, 15 Dec 2013 14:16:00 +0000 (18:16 +0400)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 17 Dec 2013 10:47:21 +0000 (11:47 +0100)
Replace existing resource handling in the driver with managed
device resource, this ensures more consistent error values and
simplifies error paths.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/mcp251x.c

index c4970c8b949ad55b33b00a5544a599991392c74a..88d3877b62770702419ffba079b118b8124459b7 100644 (file)
@@ -1066,15 +1066,17 @@ static int mcp251x_can_probe(struct spi_device *spi)
 
        /* Allocate non-DMA buffers */
        if (!mcp251x_enable_dma) {
-               priv->spi_tx_buf = kmalloc(SPI_TRANSFER_BUF_LEN, GFP_KERNEL);
+               priv->spi_tx_buf = devm_kzalloc(&spi->dev, SPI_TRANSFER_BUF_LEN,
+                                               GFP_KERNEL);
                if (!priv->spi_tx_buf) {
                        ret = -ENOMEM;
-                       goto error_tx_buf;
+                       goto error_probe;
                }
-               priv->spi_rx_buf = kmalloc(SPI_TRANSFER_BUF_LEN, GFP_KERNEL);
+               priv->spi_rx_buf = devm_kzalloc(&spi->dev, SPI_TRANSFER_BUF_LEN,
+                                               GFP_KERNEL);
                if (!priv->spi_rx_buf) {
                        ret = -ENOMEM;
-                       goto error_rx_buf;
+                       goto error_probe;
                }
        }
 
@@ -1107,12 +1109,6 @@ static int mcp251x_can_probe(struct spi_device *spi)
        return ret;
 
 error_probe:
-       if (!mcp251x_enable_dma)
-               kfree(priv->spi_rx_buf);
-error_rx_buf:
-       if (!mcp251x_enable_dma)
-               kfree(priv->spi_tx_buf);
-error_tx_buf:
        if (mcp251x_enable_dma)
                dma_free_coherent(&spi->dev, PAGE_SIZE,
                                  priv->spi_tx_buf, priv->spi_tx_dma);
@@ -1135,9 +1131,6 @@ static int mcp251x_can_remove(struct spi_device *spi)
        if (mcp251x_enable_dma) {
                dma_free_coherent(&spi->dev, PAGE_SIZE,
                                  priv->spi_tx_buf, priv->spi_tx_dma);
-       } else {
-               kfree(priv->spi_tx_buf);
-               kfree(priv->spi_rx_buf);
        }
 
        mcp251x_power_enable(priv->power, 0);