From patchwork Mon Nov 26 16:27:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ioana Radulescu X-Patchwork-Id: 1003319 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="StSJAxmZ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 433XQ93YgWz9s3C for ; Tue, 27 Nov 2018 03:27:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726878AbeK0DWT (ORCPT ); Mon, 26 Nov 2018 22:22:19 -0500 Received: from mail-eopbgr80084.outbound.protection.outlook.com ([40.107.8.84]:2992 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726820AbeK0DWT (ORCPT ); Mon, 26 Nov 2018 22:22:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T9bl2AnbyiWDAVo9AMp7uj3/DXfYIvH723fThgbpKfA=; b=StSJAxmZRTJQqwV+uphLnPzOVBSLTOKja5rN9tY1zVLMZRyc1hdP/I39ko07HcGLB5oduIKOmaK48hQyaR++kWLngHzshQZVyrVQpMzX55Dsud+iQ4BAJeWa3kQPrGcST39wRuW89Z1RUvIcBbI66DN4C7nGeHyrdjDV5EjqCLg= Received: from AM6PR04MB5000.eurprd04.prod.outlook.com (20.177.33.219) by AM6PR04MB4518.eurprd04.prod.outlook.com (20.176.242.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1361.19; Mon, 26 Nov 2018 16:27:36 +0000 Received: from AM6PR04MB5000.eurprd04.prod.outlook.com ([fe80::298c:e496:4be4:3244]) by AM6PR04MB5000.eurprd04.prod.outlook.com ([fe80::298c:e496:4be4:3244%5]) with mapi id 15.20.1361.019; Mon, 26 Nov 2018 16:27:36 +0000 From: Ioana Ciocoi Radulescu To: "netdev@vger.kernel.org" , "davem@davemloft.net" CC: Ioana Ciornei , "dsahern@gmail.com" , Camelia Alexandra Groza Subject: [PATCH v2 net-next 5/8] dpaa2-eth: Map Rx buffers as bidirectional Thread-Topic: [PATCH v2 net-next 5/8] dpaa2-eth: Map Rx buffers as bidirectional Thread-Index: AQHUhaTu9vDMkn2FCEeADLQav3z//A== Date: Mon, 26 Nov 2018 16:27:32 +0000 Message-ID: <1543249591-14563-6-git-send-email-ruxandra.radulescu@nxp.com> References: <1543249591-14563-1-git-send-email-ruxandra.radulescu@nxp.com> In-Reply-To: <1543249591-14563-1-git-send-email-ruxandra.radulescu@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0302CA0012.eurprd03.prod.outlook.com (2603:10a6:800:e9::22) To AM6PR04MB5000.eurprd04.prod.outlook.com (2603:10a6:20b:7::27) authentication-results: spf=none (sender IP is ) smtp.mailfrom=ruxandra.radulescu@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [86.34.165.90] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR04MB4518; 6:G+OnDCX57uY+diaR0g171va6apnYsY+lNa/INhTc8m3O/RcJe0tRrDfC1Bg0Ix+Ltm0hTsQb08Z+FJaooHABamVAYfwYFyU73emgn5gR0AuxuQgBO4hf6kIrETopczfXs9ChKa3uUr71jq9MYvDs8QH70jA9uT76D1bGI7MH4CntybuSCFeuVwzuRJ42GAi8nYOFS+ykF2ID/g6LVHGZC3UvDQGUI5lY0MCfP+JQ5a9yseg8ShTNvba+JEXhJe974FDSQqtey8ZE0WqAMv/im1zK0bzBQkWLxkDExYFNGduMZc0d9hlSnWPDwWqyyx/xDStGGnJW4AkbHMLOrtA5CQiBMKiKR6uFk2ng9aRx0LkTOgmMwxeW9Hgwsq3mSGjXLtNic05GXrNQ4EPXEzRiD/F20SOOEV3KLqyxjP4A8dyMsJGAfyCB+NofvqPR/dzzBU3QMxqxRzlm1OYCFGCp/w==; 5:ndWffq1C1vb/Eztbt+od5/VknIOQcW0KH9v+f9g1GkSWF56O2ZTWvI3jUr/2rVZLvsvttcUGn2XM/fQwQSOVFEUuWICRiCkPBHPkym2Hf3AoU9NUo9Tc7N3C2YV2ijYxpkHJNqwsOhQ5eRHi/cV41fHcTWcm3NT5c1J51vxHpSI=; 7:SM97bqr3As+efK+YCzKD7jLK7EySvUkYt7FSlRstApn7C1EuQ04mFZkOITr+/iMdtHQQ4Kq+i06bz3Ffa/v1VnJpv/voLPxInLCeIBqq2BT2dRJUUOOYMu8RC3Tnh8islbZXBCDxoH0Hz3GI7gog5g== x-ms-office365-filtering-correlation-id: e7ddb137-f686-44ef-e848-08d653bc1107 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:AM6PR04MB4518; x-ms-traffictypediagnostic: AM6PR04MB4518: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(3231443)(944501410)(52105112)(10201501046)(6055026)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM6PR04MB4518; BCL:0; PCL:0; RULEID:; SRVR:AM6PR04MB4518; x-forefront-prvs: 086831DFB4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(376002)(346002)(136003)(39860400002)(199004)(189003)(86362001)(71200400001)(316002)(54906003)(478600001)(6666004)(110136005)(66066001)(186003)(2906002)(71190400001)(5660300001)(386003)(7736002)(102836004)(26005)(76176011)(6512007)(256004)(14444005)(52116002)(2501003)(99286004)(11346002)(446003)(476003)(486006)(2616005)(6436002)(81156014)(305945005)(105586002)(106356001)(68736007)(14454004)(39060400002)(8676002)(8936002)(81166006)(6486002)(4326008)(6506007)(25786009)(97736004)(6116002)(3846002)(36756003)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR04MB4518; H:AM6PR04MB5000.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 827u8kcw2JPRcZP9zO8hPabQpaXHuLspRquyWkKyAbJn02dya1uPnzHZJbYLiiiE3z1rJcnUOiuYrhxKH++9Jou9kaz92U0oB5QBG0GVxdwhNyXZt/JTrJKOjYtdS6J4bSZhEVdzroWyveoikWjCANh/6mKPyJoeka9tHDGvTB6Yy86TTiKvwieTE1gu8h5iifIziej+N+KOBBN5q8dxUOejbJxMc/pmABpCbnGXTfb0f7pf88VLVAE6owIXXCcMl6+cUfxlkg54O2noHkq5GBq4vTW3FF6LsDG3BWXL2DzSglQRpgkwgKaWJxLhEb+d2DDUQZ74CJV4ugQd3UO2QKjEzcyE4QWWIkRQ3f43lWI= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7ddb137-f686-44ef-e848-08d653bc1107 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2018 16:27:32.6683 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4518 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In order to support enqueueing Rx FDs back to hardware, we need to DMA map Rx buffers as bidirectional. Signed-off-by: Ioana Radulescu --- v2: no changes drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c index ac4cb81..c2e880b 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -87,7 +87,7 @@ static void free_rx_fd(struct dpaa2_eth_priv *priv, addr = dpaa2_sg_get_addr(&sgt[i]); sg_vaddr = dpaa2_iova_to_virt(priv->iommu_domain, addr); dma_unmap_single(dev, addr, DPAA2_ETH_RX_BUF_SIZE, - DMA_FROM_DEVICE); + DMA_BIDIRECTIONAL); skb_free_frag(sg_vaddr); if (dpaa2_sg_is_final(&sgt[i])) @@ -145,7 +145,7 @@ static struct sk_buff *build_frag_skb(struct dpaa2_eth_priv *priv, sg_addr = dpaa2_sg_get_addr(sge); sg_vaddr = dpaa2_iova_to_virt(priv->iommu_domain, sg_addr); dma_unmap_single(dev, sg_addr, DPAA2_ETH_RX_BUF_SIZE, - DMA_FROM_DEVICE); + DMA_BIDIRECTIONAL); sg_length = dpaa2_sg_get_len(sge); @@ -212,7 +212,7 @@ static void free_bufs(struct dpaa2_eth_priv *priv, u64 *buf_array, int count) for (i = 0; i < count; i++) { vaddr = dpaa2_iova_to_virt(priv->iommu_domain, buf_array[i]); dma_unmap_single(dev, buf_array[i], DPAA2_ETH_RX_BUF_SIZE, - DMA_FROM_DEVICE); + DMA_BIDIRECTIONAL); skb_free_frag(vaddr); } } @@ -306,7 +306,7 @@ static void dpaa2_eth_rx(struct dpaa2_eth_priv *priv, vaddr = dpaa2_iova_to_virt(priv->iommu_domain, addr); dma_sync_single_for_cpu(dev, addr, DPAA2_ETH_RX_BUF_SIZE, - DMA_FROM_DEVICE); + DMA_BIDIRECTIONAL); fas = dpaa2_get_fas(vaddr, false); prefetch(fas); @@ -325,13 +325,13 @@ static void dpaa2_eth_rx(struct dpaa2_eth_priv *priv, } dma_unmap_single(dev, addr, DPAA2_ETH_RX_BUF_SIZE, - DMA_FROM_DEVICE); + DMA_BIDIRECTIONAL); skb = build_linear_skb(ch, fd, vaddr); } else if (fd_format == dpaa2_fd_sg) { WARN_ON(priv->xdp_prog); dma_unmap_single(dev, addr, DPAA2_ETH_RX_BUF_SIZE, - DMA_FROM_DEVICE); + DMA_BIDIRECTIONAL); skb = build_frag_skb(priv, ch, buf_data); skb_free_frag(vaddr); percpu_extras->rx_sg_frames++; @@ -865,7 +865,7 @@ static int add_bufs(struct dpaa2_eth_priv *priv, buf = PTR_ALIGN(buf, priv->rx_buf_align); addr = dma_map_single(dev, buf, DPAA2_ETH_RX_BUF_SIZE, - DMA_FROM_DEVICE); + DMA_BIDIRECTIONAL); if (unlikely(dma_mapping_error(dev, addr))) goto err_map;