|
@@ -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);
|