Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp2933794pxb; Sat, 25 Sep 2021 23:55:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxsxHXVU1hWEHiHTf84C6i9aD4qnKbV4BoybBQQb+Cn+HEzhVeiC9Vo1GqsArhMBPIn8KOi X-Received: by 2002:a05:6e02:664:: with SMTP id l4mr703769ilt.153.1632639337640; Sat, 25 Sep 2021 23:55:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632639337; cv=none; d=google.com; s=arc-20160816; b=KAg18bENHQ8bsq7GAxq/azB2qmCuvIb5b0ydPnG98F7yveTmiamUzxLZ1vfC4cgcYh WtPgIpjdTuFsrnJbO4aaOyGg/C5TwcLNpGpB2WdRgIkafO5CzeJjIY0VVhSZ4fMOJbsq FjXlMELv5MM8oMzJ3oIpprfQMurPiUy8GKtmi/xW739P05WetH+eM6ti9KbHwCwZBqgl I7dRX7GM8i6l9ko7Z4rxorlljgf4HHdfhBHnTPbPdnitdEJwe/9acQ6rgdp1uljKN4t2 gJ9Qt7XS1cNKkRFg1oV0cruVaoPRuikB1sO61DiKlJoWjCbmU140ymY0h3Y48Z5hhfCY WXmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=2sjIHC02qPMR5B9ITnX23N9kLm1KU0lFMHMwSQNQwNU=; b=n0PA920SoZ+BAiuLdCBZq2kj5mgFB3I65Jso6CREVg5CaMA8WINSl8paPwnNdNu8fp Pnt2eDUJOoZcpqfIRoB8Iq6Z9QH0tqvl1HUaX12/I3/Yu8pNHPuhKrYdzWLTMuif//LP fEqSIPrjoOZwKdSIXHZBjxkC8GTYRsmkMYkUictKzIpIly1MJz9kRGho/6R0MhkoUiC6 FMqOdC9owucgnkV4fVe+XqcqdEmKBcKvgrcID6wOsnx7su/fO0Az5kI7yiGuZPXxTg6k /B3MHkYUEjLfejrtf5wXNP+LAeY5GBNp/24zWssX5B3vXVPaD/dQcr/ZpqAP4s2PAs6m eBRg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b18si9340117ioc.50.2021.09.25.23.55.25; Sat, 25 Sep 2021 23:55:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231161AbhIZGyD (ORCPT + 99 others); Sun, 26 Sep 2021 02:54:03 -0400 Received: from mx22.baidu.com ([220.181.50.185]:34918 "EHLO baidu.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S229879AbhIZGyA (ORCPT ); Sun, 26 Sep 2021 02:54:00 -0400 Received: from BC-Mail-Ex11.internal.baidu.com (unknown [172.31.51.51]) by Forcepoint Email with ESMTPS id C07ABCB2A5B8EE19BD12; Sun, 26 Sep 2021 14:52:22 +0800 (CST) Received: from BJHW-MAIL-EX27.internal.baidu.com (10.127.64.42) by BC-Mail-Ex11.internal.baidu.com (172.31.51.51) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2242.12; Sun, 26 Sep 2021 14:52:22 +0800 Received: from LAPTOP-UKSR4ENP.internal.baidu.com (172.31.63.8) by BJHW-MAIL-EX27.internal.baidu.com (10.127.64.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14; Sun, 26 Sep 2021 14:52:21 +0800 From: Cai Huoqing To: CC: Cristobal Forno , Michael Ellerman , Benjamin Herrenschmidt , "Paul Mackerras" , "David S. Miller" , "Jakub Kicinski" , , , Subject: [PATCH v2] ibmveth: Use dma_alloc_coherent() instead of kmalloc/dma_map_single() Date: Sun, 26 Sep 2021 14:52:14 +0800 Message-ID: <20210926065214.495-1-caihuoqing@baidu.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.31.63.8] X-ClientProxiedBy: BC-Mail-Ex13.internal.baidu.com (172.31.51.53) To BJHW-MAIL-EX27.internal.baidu.com (10.127.64.42) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Replacing kmalloc/kfree/dma_map_single/dma_unmap_single() with dma_alloc_coherent/dma_free_coherent() helps to reduce code size, and simplify the code, and coherent DMA will not clear the cache every time. Signed-off-by: Cai Huoqing --- v1->v2: Remove extra change in Kconfig drivers/net/ethernet/ibm/ibmveth.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c index 3d9b4f99d357..3aedb680adb8 100644 --- a/drivers/net/ethernet/ibm/ibmveth.c +++ b/drivers/net/ethernet/ibm/ibmveth.c @@ -605,17 +605,13 @@ static int ibmveth_open(struct net_device *netdev) } rc = -ENOMEM; - adapter->bounce_buffer = - kmalloc(netdev->mtu + IBMVETH_BUFF_OH, GFP_KERNEL); - if (!adapter->bounce_buffer) - goto out_free_irq; - adapter->bounce_buffer_dma = - dma_map_single(&adapter->vdev->dev, adapter->bounce_buffer, - netdev->mtu + IBMVETH_BUFF_OH, DMA_BIDIRECTIONAL); - if (dma_mapping_error(dev, adapter->bounce_buffer_dma)) { - netdev_err(netdev, "unable to map bounce buffer\n"); - goto out_free_bounce_buffer; + adapter->bounce_buffer = dma_alloc_coherent(&adapter->vdev->dev, + netdev->mtu + IBMVETH_BUFF_OH, + &adapter->bounce_buffer_dma, GFP_KERNEL); + if (!adapter->bounce_buffer) { + netdev_err(netdev, "unable to alloc bounce buffer\n"); + goto out_free_irq; } netdev_dbg(netdev, "initial replenish cycle\n"); @@ -627,8 +623,6 @@ static int ibmveth_open(struct net_device *netdev) return 0; -out_free_bounce_buffer: - kfree(adapter->bounce_buffer); out_free_irq: free_irq(netdev->irq, netdev); out_free_buffer_pools: @@ -702,10 +696,9 @@ static int ibmveth_close(struct net_device *netdev) ibmveth_free_buffer_pool(adapter, &adapter->rx_buff_pool[i]); - dma_unmap_single(&adapter->vdev->dev, adapter->bounce_buffer_dma, - adapter->netdev->mtu + IBMVETH_BUFF_OH, - DMA_BIDIRECTIONAL); - kfree(adapter->bounce_buffer); + dma_free_coherent(&adapter->vdev->dev, + adapter->netdev->mtu + IBMVETH_BUFF_OH, + adapter->bounce_buffer, adapter->bounce_buffer_dma); netdev_dbg(netdev, "close complete\n"); -- 2.25.1