Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1135839/?format=api
{ "id": 1135839, "url": "http://patchwork.ozlabs.org/api/patches/1135839/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20190723092454.3508-8-anthony.l.nguyen@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20190723092454.3508-8-anthony.l.nguyen@intel.com>", "list_archive_url": null, "date": "2019-07-23T09:24:48", "name": "[S23,v3,08/15] ice: allow empty rx descriptors", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "8f47a2a759a5a8f16bf4f9c26f74298e84fc7ed8", "submitter": { "id": 68875, "url": "http://patchwork.ozlabs.org/api/people/68875/?format=api", "name": "Tony Nguyen", "email": "anthony.l.nguyen@intel.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20190723092454.3508-8-anthony.l.nguyen@intel.com/mbox/", "series": [ { "id": 121040, "url": "http://patchwork.ozlabs.org/api/series/121040/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=121040", "date": "2019-07-23T09:24:50", "name": "[S23,v3,01/15] ice: Implement ethtool ops for channels", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/121040/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1135839/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1135839/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.136; helo=silver.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=fail (p=none dis=none) header.from=intel.com" ], "Received": [ "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 45tR1d0SPdz9s7T\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 24 Jul 2019 03:54:13 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 708DB20449;\n\tTue, 23 Jul 2019 17:54:10 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id clDsHqjkwRnb; Tue, 23 Jul 2019 17:54:07 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id D02C320444;\n\tTue, 23 Jul 2019 17:54:07 +0000 (UTC)", "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id 9B9ED1BF95A\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 23 Jul 2019 17:54:02 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 92B4286038\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 23 Jul 2019 17:54:02 +0000 (UTC)", "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id zRuyC3PmCjdM for <intel-wired-lan@lists.osuosl.org>;\n\tTue, 23 Jul 2019 17:54:01 +0000 (UTC)", "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 271458666D\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 23 Jul 2019 17:54:01 +0000 (UTC)", "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t23 Jul 2019 10:53:58 -0700", "from unknown (HELO localhost.jf.intel.com) ([10.166.244.174])\n\tby orsmga005.jf.intel.com with ESMTP; 23 Jul 2019 10:53:58 -0700" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.64,299,1559545200\"; d=\"scan'208\";a=\"344813725\"", "From": "Tony Nguyen <anthony.l.nguyen@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Tue, 23 Jul 2019 02:24:48 -0700", "Message-Id": "<20190723092454.3508-8-anthony.l.nguyen@intel.com>", "X-Mailer": "git-send-email 2.20.1", "In-Reply-To": "<20190723092454.3508-1-anthony.l.nguyen@intel.com>", "References": "<20190723092454.3508-1-anthony.l.nguyen@intel.com>", "MIME-Version": "1.0", "Subject": "[Intel-wired-lan] [PATCH S23 v3 08/15] ice: allow empty rx\n\tdescriptors", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>", "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "From: Mitch Williams <mitch.a.williams@intel.com>\n\nIn some circumstances, the hardware will hand us a receive descriptor\nwhich has no data attached, but is otherwise valid. The receive code was\nimproperly ignoring these descriptors, which result in an infinite loop.\n\nTo fix this, change the receive code to process all descriptors,\nregardless of the size of the associated data. Add checks to the\nmemory-handling functions to allow for zero size.\n\nSigned-off-by: Mitch Williams <mitch.a.williams@intel.com>\n---\n drivers/net/ethernet/intel/ice/ice_txrx.c | 15 ++++++++++++---\n 1 file changed, 12 insertions(+), 3 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c\nindex a78c68fe190a..f612f1f53c67 100644\n--- a/drivers/net/ethernet/intel/ice/ice_txrx.c\n+++ b/drivers/net/ethernet/intel/ice/ice_txrx.c\n@@ -607,6 +607,8 @@ ice_add_rx_frag(struct ice_rx_buf *rx_buf, struct sk_buff *skb,\n \tunsigned int truesize = ICE_RXBUF_2048;\n #endif\n \n+\tif (!size)\n+\t\treturn;\n \tskb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_buf->page,\n \t\t\trx_buf->page_offset, size, truesize);\n \n@@ -662,6 +664,8 @@ ice_get_rx_buf(struct ice_ring *rx_ring, struct sk_buff **skb,\n \tprefetchw(rx_buf->page);\n \t*skb = rx_buf->skb;\n \n+\tif (!size)\n+\t\treturn rx_buf;\n \t/* we are reusing so sync this buffer for CPU use */\n \tdma_sync_single_range_for_cpu(rx_ring->dev, rx_buf->dma,\n \t\t\t\t rx_buf->page_offset, size,\n@@ -745,8 +749,11 @@ ice_construct_skb(struct ice_ring *rx_ring, struct ice_rx_buf *rx_buf,\n */\n static void ice_put_rx_buf(struct ice_ring *rx_ring, struct ice_rx_buf *rx_buf)\n {\n-\t\t/* hand second half of page back to the ring */\n+\tif (!rx_buf)\n+\t\treturn;\n+\n \tif (ice_can_reuse_rx_page(rx_buf)) {\n+\t\t/* hand second half of page back to the ring */\n \t\tice_reuse_rx_page(rx_ring, rx_buf);\n \t\trx_ring->rx_stats.page_reuse_count++;\n \t} else {\n@@ -1032,8 +1039,9 @@ static int ice_clean_rx_irq(struct ice_ring *rx_ring, int budget)\n \t\tsize = le16_to_cpu(rx_desc->wb.pkt_len) &\n \t\t\tICE_RX_FLX_DESC_PKT_LEN_M;\n \n+\t\t/* retrieve a buffer from the ring */\n \t\trx_buf = ice_get_rx_buf(rx_ring, &skb, size);\n-\t\t/* allocate (if needed) and populate skb */\n+\n \t\tif (skb)\n \t\t\tice_add_rx_frag(rx_buf, skb, size);\n \t\telse\n@@ -1042,7 +1050,8 @@ static int ice_clean_rx_irq(struct ice_ring *rx_ring, int budget)\n \t\t/* exit if we failed to retrieve a buffer */\n \t\tif (!skb) {\n \t\t\trx_ring->rx_stats.alloc_buf_failed++;\n-\t\t\trx_buf->pagecnt_bias++;\n+\t\t\tif (rx_buf)\n+\t\t\t\trx_buf->pagecnt_bias++;\n \t\t\tbreak;\n \t\t}\n \n", "prefixes": [ "S23", "v3", "08/15" ] }