Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/350342/?format=api
{ "id": 350342, "url": "http://patchwork.ozlabs.org/api/patches/350342/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1400518800-6111-9-git-send-email-ezequiel.garcia@free-electrons.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1400518800-6111-9-git-send-email-ezequiel.garcia@free-electrons.com>", "list_archive_url": null, "date": "2014-05-19T16:59:59", "name": "[8/9] net: mv643xx_eth: Use dma_map_single() to map the skb fragments", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "80f6d36cc43736cb2a608c8da224468131d5d572", "submitter": { "id": 20433, "url": "http://patchwork.ozlabs.org/api/people/20433/?format=api", "name": "Ezequiel Garcia", "email": "ezequiel.garcia@free-electrons.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1400518800-6111-9-git-send-email-ezequiel.garcia@free-electrons.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/350342/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/350342/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "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])\n\tby ozlabs.org (Postfix) with ESMTP id A6FE114008E\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 20 May 2014 03:01:29 +1000 (EST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S964849AbaESRBZ (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tMon, 19 May 2014 13:01:25 -0400", "from top.free-electrons.com ([176.31.233.9]:53627 \"EHLO\n\tmail.free-electrons.com\" rhost-flags-OK-OK-OK-FAIL) by\n\tvger.kernel.org with ESMTP id S964813AbaESRBV (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Mon, 19 May 2014 13:01:21 -0400", "by mail.free-electrons.com (Postfix, from userid 106)\n\tid 0FC3D8B8; Mon, 19 May 2014 19:01:24 +0200 (CEST)", "from localhost.localdomain (unknown [190.2.108.30])\n\tby mail.free-electrons.com (Postfix) with ESMTPSA id 919F07EB;\n\tMon, 19 May 2014 19:01:21 +0200 (CEST)" ], "X-Spam-Checker-Version": "SpamAssassin 3.3.2 (2011-06-06) on\n\tmail.free-electrons.com", "X-Spam-Level": "", "X-Spam-Status": "No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT\n\tshortcircuit=ham autolearn=disabled version=3.3.2", "From": "Ezequiel Garcia <ezequiel.garcia@free-electrons.com>", "To": "<netdev@vger.kernel.org>, David Miller <davem@davemloft.net>,\n\tEric Dumazet <eric.dumazet@gmail.com>", "Cc": "Willy Tarreau <w@1wt.eu>,\n\tThomas Petazzoni <thomas.petazzoni@free-electrons.com>,\n\tGregory Clement <gregory.clement@free-electrons.com>,\n\tSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,\n\tTawfik Bayouk <tawfik@marvell.com>, Lior Amsalem <alior@marvell.com>,\n\tEzequiel Garcia <ezequiel.garcia@free-electrons.com>", "Subject": "[PATCH 8/9] net: mv643xx_eth: Use dma_map_single() to map the skb\n\tfragments", "Date": "Mon, 19 May 2014 13:59:59 -0300", "Message-Id": "<1400518800-6111-9-git-send-email-ezequiel.garcia@free-electrons.com>", "X-Mailer": "git-send-email 1.9.1", "In-Reply-To": "<1400518800-6111-1-git-send-email-ezequiel.garcia@free-electrons.com>", "References": "<1400518800-6111-1-git-send-email-ezequiel.garcia@free-electrons.com>", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "Using dma_map_single() instead of skb_frag_dma_map() allows to unmap\nall the descriptors using dma_unmap_single(). This change allows\nto introduce software TSO in a less intrusive way.\n\nSigned-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>\n---\n drivers/net/ethernet/marvell/mv643xx_eth.c | 18 ++++++------------\n 1 file changed, 6 insertions(+), 12 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c\nindex 01fde2c..8854751 100644\n--- a/drivers/net/ethernet/marvell/mv643xx_eth.c\n+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c\n@@ -732,8 +732,10 @@ static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)\n \t\tskb_frag_t *this_frag;\n \t\tint tx_index;\n \t\tstruct tx_desc *desc;\n+\t\tvoid *addr;\n \n \t\tthis_frag = &skb_shinfo(skb)->frags[frag];\n+\t\taddr = page_address(this_frag->page.p) + this_frag->page_offset;\n \t\ttx_index = txq->tx_curr_desc++;\n \t\tif (txq->tx_curr_desc == txq->tx_ring_size)\n \t\t\ttxq->tx_curr_desc = 0;\n@@ -753,10 +755,8 @@ static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)\n \n \t\tdesc->l4i_chk = 0;\n \t\tdesc->byte_cnt = skb_frag_size(this_frag);\n-\t\tdesc->buf_ptr = skb_frag_dma_map(mp->dev->dev.parent,\n-\t\t\t\t\t\t this_frag, 0,\n-\t\t\t\t\t\t skb_frag_size(this_frag),\n-\t\t\t\t\t\t DMA_TO_DEVICE);\n+\t\tdesc->buf_ptr = dma_map_single(mp->dev->dev.parent, addr,\n+\t\t\t\t\t desc->byte_cnt, DMA_TO_DEVICE);\n \t}\n }\n \n@@ -927,14 +927,8 @@ static int txq_reclaim(struct tx_queue *txq, int budget, int force)\n \t\t\tmp->dev->stats.tx_errors++;\n \t\t}\n \n-\t\tif (cmd_sts & TX_FIRST_DESC) {\n-\t\t\tdma_unmap_single(mp->dev->dev.parent, desc->buf_ptr,\n-\t\t\t\t\t desc->byte_cnt, DMA_TO_DEVICE);\n-\t\t} else {\n-\t\t\tdma_unmap_page(mp->dev->dev.parent, desc->buf_ptr,\n-\t\t\t\t desc->byte_cnt, DMA_TO_DEVICE);\n-\t\t}\n-\n+\t\tdma_unmap_single(mp->dev->dev.parent, desc->buf_ptr,\n+\t\t\t\t desc->byte_cnt, DMA_TO_DEVICE);\n \t\tdev_kfree_skb(skb);\n \t}\n \n", "prefixes": [ "8/9" ] }