From patchwork Wed Nov 13 08:43:15 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Shiyan X-Patchwork-Id: 290861 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 7B22C2C007E for ; Wed, 13 Nov 2013 19:47:12 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758615Ab3KMIrJ (ORCPT ); Wed, 13 Nov 2013 03:47:09 -0500 Received: from fallback3.mail.ru ([94.100.176.58]:55283 "EHLO fallback3.mail.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757480Ab3KMIrF (ORCPT ); Wed, 13 Nov 2013 03:47:05 -0500 Received: from smtp38.i.mail.ru (smtp38.i.mail.ru [94.100.177.98]) by fallback3.mail.ru (mPOP.Fallback_MX) with ESMTP id 673EBFFC64A3; Wed, 13 Nov 2013 12:43:44 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail2; h=Message-Id:Date:Subject:Cc:To:From; bh=NyzhEskH+QqTDmY/wEpTVw69HX+gW1KwlHExVFNJSQM=; b=U+r5p80OO1WXLeTdxf2n6a5LAdYL+X6PZncLjV19kcdKXXw3ILVNmVZrVbMAxFxman1XrL66BIcNpETF10vSWJjWcbiHa6Awox/fdUzWgpCWBfglwK2sePaA+XWwEhNPfMklNxvwrZTyn471pPT28+fxZrL29sjUK1LSn4RnuPs=; Received: from [217.119.30.118] (port=58374 helo=shc.milas.spb.ru) by smtp38.i.mail.ru with esmtpa (envelope-from ) id 1VgW2k-0003Cv-Mk; Wed, 13 Nov 2013 12:43:22 +0400 From: Alexander Shiyan To: linux-can@vger.kernel.org Cc: netdev@vger.kernel.org, Wolfgang Grandegger , Marc Kleine-Budde , Alexander Shiyan Subject: [PATCH 2/3] can: mcp251x: Convert to devm-* API Date: Wed, 13 Nov 2013 12:43:15 +0400 Message-Id: <1384332195-15257-1-git-send-email-shc_work@mail.ru> X-Mailer: git-send-email 1.8.1.5 X-Spam: Not detected X-Mras: Ok Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 --- drivers/net/can/mcp251x.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c index 3a8d80b..8e133aa 100644 --- a/drivers/net/can/mcp251x.c +++ b/drivers/net/can/mcp251x.c @@ -1062,15 +1062,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; } } @@ -1103,12 +1105,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); @@ -1134,9 +1130,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);