From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967365AbdEXMNm (ORCPT ); Wed, 24 May 2017 08:13:42 -0400 Received: from mail-by2nam01on0087.outbound.protection.outlook.com ([104.47.34.87]:4832 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S965631AbdEXMNd (ORCPT ); Wed, 24 May 2017 08:13:33 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; From: Ioana Radulescu To: CC: , , , , , , , , , Subject: [PATCH 2/2] staging: fsl-dpaa2/eth: Map Tx buffers as bidirectional Date: Wed, 24 May 2017 07:13:28 -0500 Message-ID: <20170524121328.16984-2-ruxandra.radulescu@nxp.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170524121328.16984-1-ruxandra.radulescu@nxp.com> References: <20170524121328.16984-1-ruxandra.radulescu@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131401016099050555;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(336005)(39450400003)(39840400002)(39860400002)(39850400002)(39380400002)(39400400002)(39410400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(7416002)(77096006)(4326008)(2351001)(189998001)(39060400002)(76176999)(50226002)(104016004)(1076002)(5660300001)(33646002)(53936002)(8656002)(105606002)(47776003)(305945005)(54906002)(50986999)(50466002)(48376002)(2950100002)(6916009)(551934003)(36756003)(5003940100001)(81166006)(8936002)(86362001)(110136004)(498600001)(2906002)(575784001)(85426001)(356003)(38730400002)(8676002)(106466001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR03MB2799;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;MLV:ovrnspm;A:1;MX:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD020;1:jqBszJrF52PRm0LhyKj6b5NF7Ic+5bCYr2klKr7vPYr2OMd2qVQWFpb2rjLciVugZbOYs2OgDGDNkJy2/XVpAOECwLmrL9UzwA+LVPd7m2MSdkOfXSjOKEDc/ruSNPSro5dyHycm2pfaAF8cljhH+agQpflNJzI5w95AxVMD2n4/SUk0QtQMYxKtW8eN+doU+tbiGgtHfkfRzIvghOgVyLiHLtHMDm1SbTwNJj7u38jWrpUDVfpEezm5Y4DoFeZkdC/JnM45jv10QBHqucYlphrtVlsbznZU5XQMRaxjZzNqjSc/X4wESEz+/5uKvi8zd6dy5N8wwRkQ2Vmj5i1lgXIuIIKghpoIoC8y4Y6CwmWLj2edO4tFlBSlDGbMC9qZw1Ri47U/W0YHjngol7qx7u39q47CedNUkXs4f15pTwoST9U47daloHqwQzDlIEgEZZ1+gl1syNamrInNWmchC0xPWyXD4rxJEDxTZtvuaKyVRKWoNAm0PAZS9hH3APUL/OiGhlbH8pi+vEfsIE7gGcxLwegAgam0rLa2FEq/fGBcLF7FV4szL5etVrmBzkdxBXvwrUkp/7PDB6ep9ttspdl2KWVJ9jakSx6wE0innjaAkB1IFlB7Avce1Zny1tvLugm8FKWcAKYsaL231SqQFeOm1o5Tz2BVU3iy8oRG+7s5JAFfcO8y8ChQYcEHNJMubkpWzrt1ZqLmsMIOxAgansTHxcfZBqJjDutDFbdjEBA= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR03MB2799: X-MS-Office365-Filtering-Correlation-Id: ab1ea018-f68f-4134-943b-08d4a29e4a2c X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131430075)(201703131517081);SRVR:MWHPR03MB2799; X-Microsoft-Exchange-Diagnostics: 1;MWHPR03MB2799;3:bw9/4pW2mEFz7gtSmrRc8Bam3Pjiy8RKMOnN3aSEgPrKPJPeQm2ZgHt4hb5jOWhKsFjVd5wtzZbdxYXJV0vP1qbLUwviRAuQ01W/EQroFXGJugXbI67ju1A+TW3OGUiWuVHhM2FfdGYJBHh0Lvup3Bv4XDA1WaaxKBh2s4aMKxeidIo5re7KYjhDVIcIHuRfSq4sDNCnLxELIq5MUeqDMysQeSnbfwd/l1fNqdypiH81P9uOzCxsmT+c+5Papdm/u568dd7mdAz/uU2ZUnz9+LheCctzHhcRs4lQMvwnayYEmrQNz1tl3718yqO72cLWWIr+pgAo7AFvkY8p/fv8uoKs9JAqsbFSz76EEyKuhUvMcMyb2L7ZpSWvR3cXWs80jqz+C+a4kcs4I+vnQTzmGU8crQ1+APDAZJUTGVNY2sfMopXx7iLtdpYilQwASV95;25:H2zXY+iAUkqgJkgz1nAKIq8N1EExQnaN9CAQ5v8j94GiYYAdagD/+Z98NS3LO+OcxEpDrKOXoYMHbF5M3V0JbhFPlU4Jl7vBsoZbx4qaiSJtiERWigvZjvCQa0HJjzLl/PImk7lo4/N6jtNAyqzSB3oQFxuu+KXHB78QwqUzR3rZGJyu8z+mmcCXMg+m+nLxwDEsBytqlcQTwmC9GDywy9YdOKjPsUXDXwTxpmmoV9xEe5WTOfQmY+5AM3TT2oNPe7EaFFFByX1uAvJ0NEREOc1sw4xKKXz/51Zl/NevtNwq9eg2HuoGFI6Il83Nux2Gx29AYs7gcAkC+DEaAj+RAKIDHYXA9X05noKL6WCCffC7jPUdLF2wxCKfEvpKZdpUWcVRSImOgi6INvMHY+cvb0mK1urxfvLr1P9+PWmoiWy68h6ZwfZFRs9Cq3ZgjjcTeIHbRTB6MlHa2TP7othA5qJghjadszUjPfaRHPHB4hQ= X-Microsoft-Exchange-Diagnostics: 1;MWHPR03MB2799;31:GiWNKAaw7VBX6Fos4NPj0pslZpTf4H1LIdufb4r7jjHvy+sWuiIYHoPOr6jEPY2WmYshYxM1KnmlUiGaRg1KzNKf7ug192d+eDXO875GDfir3l9ehOp7lAvTEPf9n94TxKrS1CvEXm/GaHuKI84sTpJ80osyk3uulT+jeAabGxb1D9X/f/Iv/Y5mxV6AB3RyqreEuRFXBmi8EbIU/CgOSKt29StM6e0lYn4Pe9X0aq5qmyMiDpwcSvqA0Vi9wsFut6PaU48sdESXk6BZjZdTTQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095135)(601004)(2401047)(5005006)(13024025)(13015025)(13017025)(13018025)(13023025)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6055026)(6096035)(20161123559100)(20161123561025)(20161123565025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123556025)(20161123563025);SRVR:MWHPR03MB2799;BCL:0;PCL:0;RULEID:(400006);SRVR:MWHPR03MB2799; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR03MB2799;4:L+FCf/NQNiJu5Gm1yCxbO6akiFLdCcmOLP1JAscPg5?= =?us-ascii?Q?ALtb1kdruvIEdIK+dM9QivtdFiZeOgtBll/7iiFr+dawdNN5bs1G9EZN6avo?= =?us-ascii?Q?a0morCOidexRCIkdc2Zx/m+gH8iz2+Ku0O+9tX0fPRV4ackIA5Yxy2cvYiUC?= =?us-ascii?Q?jtL0Xs3CoVgCskdvFs9TAuvGBQQ7YEJ05o2iU/b+IIBwsIypWknRW75NPFYD?= =?us-ascii?Q?TFIY4s4uxU8tzP9n9slUo1mRqDTpVzHDuPsIv00Bpyjnm638RKwBOpWBGgDe?= =?us-ascii?Q?FpvP6wZc5qzzhbreWY9K4e1aZniFdF0ylJ3kIwT3xfzecNOlGYEK4h8AQ3En?= =?us-ascii?Q?R5o5pwPiQVK0kg1xNWRWs73MYdK852t226QJGwiKE4k1P6/YQEX9df6Xo7wB?= =?us-ascii?Q?Ko6upZxa7eXraWpXftYLIckg8P49eeWKbNbxLiPYDBm/WB4VfNWsQb1c5fjk?= =?us-ascii?Q?UzZqcyhS6cLl+9u1YoxF+y7LdKdchII3pUAe+hlFeqhcvavT478ebGY04q9c?= =?us-ascii?Q?E8acQHq3yC+FLo+AnpDrV302m/GLarSh52fwh0hUkXEWNEsiplluYS7iqdwl?= =?us-ascii?Q?6uGh9QPzKZrAGHVE61ToTRKQnWAyfh3VxMlRvjvy9sYBMlYJ+jJJrmHGsJSS?= =?us-ascii?Q?J9Xv1D4cUkdzp05Q216uGExdu6I8Orf9ugXJAiCfuxACGh8t+upJ9lSw52c5?= =?us-ascii?Q?4D9SNJv/NSEtG29v8cWWVd7mGaE9WfDzNaWlonl7lBd/nommBhnaKEV9MkER?= =?us-ascii?Q?dHRqZHOs2gIsLnSH7newHCBjxpcqVj9FtOCPCHJIMIiCMr37XTLHD7f9YuHb?= =?us-ascii?Q?hs4mfmKl+gyyoZ1diHih9RviCWBJZ+3ZjKxu9jfbPG9Y0foWY/eIgm3U+g7o?= =?us-ascii?Q?CRaj8pdhidlPvidd6UJh7I2A6Jd7icxkQq31YbFQqmsvENp6ymIJolvul0sD?= =?us-ascii?Q?i0DpNJIv/jF6dG49qKeG7qQ4FTFUT6Z8jskRmyTQ=3D=3D?= X-Forefront-PRVS: 031763BCAF X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR03MB2799;23:oUiSSiE3IngajVMMq3o6ccpjYh+begS8Xoy3OrCxj?= =?us-ascii?Q?zIg3BAl8HGhgSYq7GhKHY6YeXSkVUD39qd2M6TadbTnLptuZiY+hbqFr3Asc?= =?us-ascii?Q?ylCnokN8F4NKTOisbxljhhhpxGZ9rb2V33Gy2Eb6OgK/i96MqUaOmE5a1TKB?= =?us-ascii?Q?PRHs06U0HlCmVbJwXGXEPTCb/XQdjHKxbgAFBbwHeOdR6KDcnxhbs2pwL33/?= =?us-ascii?Q?u8bO1P5eXOyGRymqkb6YZ4us0aj171uyjfXjLC04tkdomzBxIOLRqsaoxzde?= =?us-ascii?Q?MU2812ehwElE/svOCZfWWV4c+v7T6lEZmU19XG8VWC6uX6eOo91qUR2Ow6Il?= =?us-ascii?Q?//1wID0srR+ALzHz0e6tCpzZtnCYX58B4Fn9/x38xuu/uW+Kcx9U39s9/fLb?= =?us-ascii?Q?vcHSAlXnIZmd92hHIU/96BB9tBLxyQIIKfMxSYdKoMWHOG7dp3d06e/3Pu/d?= =?us-ascii?Q?njZ+BJL6pkArl8YgOLfQbSpjjEqusPZfDbDivrGCf18p9jV4OK1CIh6dpAE5?= =?us-ascii?Q?t8j1hZhFFclul8vr7KdZqY5sDQOXtNf34NjroRQEn1FqmHxdvSybX9dLAK/u?= =?us-ascii?Q?p+KiUfpCAyZkOi15LwAer7urlVPZGMwVREM7D+YDhIhrk176yKEyVXd/VS1t?= =?us-ascii?Q?glb7VHckwk4hkyBLWcnF7Kshwh7yibLMBwQS6gKuJSE0HpGkfehePfZMDyXm?= =?us-ascii?Q?BWykK8qINW+jgNj3Xf923lPF6oPq1mJb+Q5IbdUw+4KF60cYpMJGfkmmMRyS?= =?us-ascii?Q?IBoCanurLdkx6XsveAOP0cQttjrvBh6LuH0IJbR0KvsvEflem7M3gWp/3/5L?= =?us-ascii?Q?egPzBkvpezj+/UoxusI/Kze5WEEdyLtVwfgmvZXmumDyPERzQrJQ8X4eoDoZ?= =?us-ascii?Q?Rnvrnov/IdkucuS3rlk8dBSNkwvUohpX25xJsB0b19/62kdgyWvs3sUywj6u?= =?us-ascii?Q?9psRCxQ3rLbfjHnJ0KwVbAY81WC2Ai5ixwnSzIAVEkq2rTIp0FMPZsD2sJjq?= =?us-ascii?Q?L9kNan7X3BKZdFnKv7IDA6ZS+FfVjixmw1KlFZXP9RtEISfGwzinFAElZJbf?= =?us-ascii?Q?YBDQEBUc257ctehHRwYtsvw73LL3G/vSafStiBbG9plWqLEN6XyQKYJY/wM5?= =?us-ascii?Q?0A+pW9sAs5VA0INUprHUdHsTChIF+VhtVgHAK4tjA6sN2wazvJsq1cqlYzCb?= =?us-ascii?Q?FchDUwpVAU7UqgrisF5RmFM3eCiv09dSWQLbPn7mUa//09RjfhPLBTvE7i8u?= =?us-ascii?Q?HN+4jrM2Dp2ubMHfRy1ctZyGjpw4ST1vA28un2ks8Zox5lPHQ25t6YQu+5T2?= =?us-ascii?Q?YTgAFtCuyPyvv/Mk7JhiDoZk4mVWEx6VcAgQCuqQOTE?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR03MB2799;6:/kL9XbBakFDzqe7RTafzZ14Z7gQWjqFJk78PB8IbUw25he2VNV3gs9MB9U1hVzu/h7XJy2VsNxBKqW3/GIabbXK56mo6SBusQHWgdzB4PH6p2Nya9Tyw7+WhUyOv8aMuEwgSB8DVxajWlABZkzAYMlBGc5J2KV/lDUZRF7V+Yo0uEfDN4ZfyCknCYcZnJ5jeyLhOcUEosF0A1sPPvDZS5s0I5BaSGNMu86YFPYOHcbmNTOeIUaPxttekmhMTbNkUAxQt086jZ2aVWkoXc6/Nleq7NdyhvLh3Vi7WAOpQ214aZpRwWBQBlW2KjV5YPVzUOB8yCCnQxeCoan3n92ebel3sMpZkIOx7Jk/6D0ZG3i8uRGNhBtt6luL+ASdY0bkEFtCItARpFAL8EkyAs/7pZnv28dckO6o1RNqh9FbJCWiVFxzfCVlYu2vW3tE8bz6pl7qGQapspcSi5fpCf/zYTAJo+kO1zRpFyYzvgLlKIlZ58gk31jXxzGoUFjMjQ3/0W8Q/KN56TXyaOZADXl7ZAA==;5:Tm5lcWKhmGiw3H9Nh/6kjKYq6nzsD280DlWOPXMqSdK3nJ0fbjgbjCNpNX8xL5cWLWPfHdxAT5PodFSf5gm89oTDO1fL9qk/GkzJnrSxgTsHjmmB/4zlWWkfWJ7QYCzVpPRH7zpYFDI78p9fwH6+LzMQhbzi0EYEceC+uBIIr5NMK9aiQbp7ngvqvNqqQf3l;24:nEmr/5vYf4485fF9B78vl1aMJ29EO5dgcJReYJd5ox1YUH21JUdtbxHZoNfbDy96TQPI2EyMHuQPM+eHLI2g28aqBg9bjuyR5fBhfaRZLFQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR03MB2799;7:Bp4dn9t3r4hxC70+5TZu+LShgtYDRTyLlI3lvHLOviIRoTef3Fx0/1uTMzXKmQHt5ZamxiRqTEcD5V8orZEdiYiOA+KsdoVpy4Ny1hhTm+xpOws9d07hoFJuxEt/W9Cpdez1y2GbcsQu+dUhRZllG0eSHMjCPZdZOMJFxJnxgsc5rWkRKMvDNrf9awlpPrlT5mqfD5SzsN1Tw46D6xMkFkrwkFiGo7wAunpapKkUHoPUfaPzdgPFiSe/5bNknEgiCC4fzMpeJpfO5qTQEQEGtnbeJ2kZ7M5DiAftuloinCEi2wCcYZAjv7Vmx4yb4nN+M96HNwcI7jSrQbRKFJS+cQ== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2017 12:13:29.7178 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR03MB2799 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org WRIOP hardware may need to write to the hardware annotation area of Tx buffers (e.g. frame status bits) and also to the data area (e.g. L4 checksum in frame header). Map these buffers as DMA_BIDIRECTIONAL, otherwise the write transaction through SMMU will not be allowed. Signed-off-by: Nipun Gupta Signed-off-by: Ioana Radulescu --- drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c index 3fee0d6f17e0..49c435bad706 100644 --- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c +++ b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c @@ -355,7 +355,7 @@ static int build_sg_fd(struct dpaa2_eth_priv *priv, sg_init_table(scl, nr_frags + 1); num_sg = skb_to_sgvec(skb, scl, 0, skb->len); - num_dma_bufs = dma_map_sg(dev, scl, num_sg, DMA_TO_DEVICE); + num_dma_bufs = dma_map_sg(dev, scl, num_sg, DMA_BIDIRECTIONAL); if (unlikely(!num_dma_bufs)) { err = -ENOMEM; goto dma_map_sg_failed; @@ -406,7 +406,7 @@ static int build_sg_fd(struct dpaa2_eth_priv *priv, swa->num_dma_bufs = num_dma_bufs; /* Separately map the SGT buffer */ - addr = dma_map_single(dev, sgt_buf, sgt_buf_size, DMA_TO_DEVICE); + addr = dma_map_single(dev, sgt_buf, sgt_buf_size, DMA_BIDIRECTIONAL); if (unlikely(dma_mapping_error(dev, addr))) { err = -ENOMEM; goto dma_map_single_failed; @@ -423,7 +423,7 @@ static int build_sg_fd(struct dpaa2_eth_priv *priv, dma_map_single_failed: kfree(sgt_buf); sgt_buf_alloc_failed: - dma_unmap_sg(dev, scl, num_sg, DMA_TO_DEVICE); + dma_unmap_sg(dev, scl, num_sg, DMA_BIDIRECTIONAL); dma_map_sg_failed: kfree(scl); return err; @@ -461,7 +461,7 @@ static int build_single_fd(struct dpaa2_eth_priv *priv, addr = dma_map_single(dev, buffer_start, skb_tail_pointer(skb) - buffer_start, - DMA_TO_DEVICE); + DMA_BIDIRECTIONAL); if (unlikely(dma_mapping_error(dev, addr))) return -ENOMEM; @@ -510,7 +510,7 @@ static void free_tx_fd(const struct dpaa2_eth_priv *priv, */ dma_unmap_single(dev, fd_addr, skb_tail_pointer(skb) - buffer_start, - DMA_TO_DEVICE); + DMA_BIDIRECTIONAL); } else if (fd_format == dpaa2_fd_sg) { swa = (struct dpaa2_eth_swa *)skbh; skb = swa->skb; @@ -519,13 +519,13 @@ static void free_tx_fd(const struct dpaa2_eth_priv *priv, num_dma_bufs = swa->num_dma_bufs; /* Unmap the scatterlist */ - dma_unmap_sg(dev, scl, num_sg, DMA_TO_DEVICE); + dma_unmap_sg(dev, scl, num_sg, DMA_BIDIRECTIONAL); kfree(scl); /* Unmap the SGT buffer */ unmap_size = priv->tx_data_offset + sizeof(struct dpaa2_sg_entry) * (1 + num_dma_bufs); - dma_unmap_single(dev, fd_addr, unmap_size, DMA_TO_DEVICE); + dma_unmap_single(dev, fd_addr, unmap_size, DMA_BIDIRECTIONAL); } else { /* Unsupported format, mark it as errored and give up */ if (status) -- 2.11.0