From patchwork Thu Jan 28 21:25:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Troy Kisky X-Patchwork-Id: 574903 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 1F2D81400CB for ; Fri, 29 Jan 2016 08:29:03 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=boundarydevices-com.20150623.gappssmtp.com header.i=@boundarydevices-com.20150623.gappssmtp.com header.b=Ny3BMyYI; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755903AbcA1V27 (ORCPT ); Thu, 28 Jan 2016 16:28:59 -0500 Received: from mail-pf0-f173.google.com ([209.85.192.173]:32934 "EHLO mail-pf0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755898AbcA1V24 (ORCPT ); Thu, 28 Jan 2016 16:28:56 -0500 Received: by mail-pf0-f173.google.com with SMTP id x125so29978421pfb.0 for ; Thu, 28 Jan 2016 13:28:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=boundarydevices-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Xe9GFMjFGgOcpKw5GhZiHadAtCqBfX3JPAV/FEtQLKQ=; b=Ny3BMyYIYb7KSdirv5/wTRrirTcLnpH6ALQ0ZQ5Yg5Q7BzVe97YoJ2WYxL8LegrnLV CHgXcjP4gO4r/DQNB18wg8Mi+95CRyX5aXinkCPO+Ik37gefm7Z/+lH2bFd6r982QJKE tBwIfQMzNPp8eMky/Kt1ESyQGLi50pUgek6io2YIwdbv02nOhZk6lrLGXU1vlYCnrEIp s1jy1dk/mtir4nOShiTQ7xm72/bBpLJyjQ9IbFTcmbnS5GxEUImwUHJpc9xg/jOqsHQK uMvhcpQ0RZl5VD1j3qUiGbEa3+jCrNeyc1PZCbmIH/ZRK2tyhEityjo6nRPZI5t8UxMK ykyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Xe9GFMjFGgOcpKw5GhZiHadAtCqBfX3JPAV/FEtQLKQ=; b=PF3ddeMsUJJhYkdUjMpyTq0gOFenrPyr19NDMEwtgFQZ89kHOkcOmedr8kEokC1GYp E6JrIZ/ulEY1O+1pvWRRdcg3WkE4bnnQW7Knximd4Bp7/4DNdkxY1rk7Vmr66sTPDTwA mPJ3vTso6v7ULdUWWsQTWedtexnC46z303wMyBcmLJT994XrkhAN/gavwaxQX6lDmD6h GSZdOVMVoUILQNl3B9gtPkpNWPWv188vgGALEks+fase9C1CG5zEEndX6BMcQunFmNUx GTJYVMktcpv2fdnhaNMuqtPTrfte52Wc4wG9fb8P6d2Jv/WVdg5ZpB4n35og4ycN9uZ4 ZtLw== X-Gm-Message-State: AG10YOQ2gPDLffvDN016XeOsVXBMywbapCfPHudX6RSIf5HMEL5KcESybVYpRTBjsn0a1g== X-Received: by 10.98.14.29 with SMTP id w29mr7889615pfi.160.1454016535950; Thu, 28 Jan 2016 13:28:55 -0800 (PST) Received: from localhost.localdomain (wsip-70-184-93-199.ph.ph.cox.net. [70.184.93.199]) by smtp.googlemail.com with ESMTPSA id c90sm18583190pfd.31.2016.01.28.13.28.54 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 28 Jan 2016 13:28:55 -0800 (PST) From: Troy Kisky To: netdev@vger.kernel.org, davem@davemloft.net, B38611@freescale.com Cc: fabio.estevam@freescale.com, l.stach@pengutronix.de, andrew@lunn.ch, tremyfr@gmail.com, linux@arm.linux.org.uk, linux-arm-kernel@lists.infradead.org, laci@boundarydevices.com, shawnguo@kernel.org, Troy Kisky Subject: [PATCH net-next 28/40] net: fec: unmap initial buffer on error Date: Thu, 28 Jan 2016 14:25:52 -0700 Message-Id: <1454016364-30985-29-git-send-email-troy.kisky@boundarydevices.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1454016364-30985-1-git-send-email-troy.kisky@boundarydevices.com> References: <1454016364-30985-1-git-send-email-troy.kisky@boundarydevices.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Troy Kisky --- drivers/net/ethernet/freescale/fec_main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 7258051..e141f6f 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -404,7 +404,6 @@ dma_mapping_error: bdp->cbd_datlen, DMA_TO_DEVICE); bdp->cbd_bufaddr = 0; } - dev_kfree_skb_any(skb); return ERR_PTR(-ENOMEM); } @@ -466,8 +465,12 @@ static int fec_enet_txq_submit_skb(struct fec_enet_priv_tx_q *txq, ((bdp == txq->bd.last) ? BD_SC_WRAP : 0); if (nr_frags) { last_bdp = fec_enet_txq_submit_frag_skb(txq, skb, ndev); - if (IS_ERR(last_bdp)) + if (IS_ERR(last_bdp)) { + dma_unmap_single(&fep->pdev->dev, addr, + buflen, DMA_TO_DEVICE); + dev_kfree_skb_any(skb); return NETDEV_TX_OK; + } } else { status |= (BD_ENET_TX_INTR | BD_ENET_TX_LAST); if (fep->bufdesc_ex) {