get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2205084/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2205084,
    "url": "http://patchwork.ozlabs.org/api/patches/2205084/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260304160345.1340940-2-larysa.zaremba@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": "<20260304160345.1340940-2-larysa.zaremba@intel.com>",
    "list_archive_url": null,
    "date": "2026-03-04T16:03:33",
    "name": "[iwl-next,v3,01/10] ixgbevf: remove legacy Rx",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "b386b867152a5054117ae5b710158f8d8a4a9267",
    "submitter": {
        "id": 84900,
        "url": "http://patchwork.ozlabs.org/api/people/84900/?format=api",
        "name": "Larysa Zaremba",
        "email": "larysa.zaremba@intel.com"
    },
    "delegate": {
        "id": 109701,
        "url": "http://patchwork.ozlabs.org/api/users/109701/?format=api",
        "username": "anguy11",
        "first_name": "Anthony",
        "last_name": "Nguyen",
        "email": "anthony.l.nguyen@intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260304160345.1340940-2-larysa.zaremba@intel.com/mbox/",
    "series": [
        {
            "id": 494412,
            "url": "http://patchwork.ozlabs.org/api/series/494412/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=494412",
            "date": "2026-03-04T16:03:32",
            "name": "libeth and full XDP for ixgbevf",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/494412/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2205084/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2205084/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@legolas.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=P2nF978N;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fQywP5GJLz1xws\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 05 Mar 2026 03:36:05 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id BDA978131C;\n\tWed,  4 Mar 2026 16:36:02 +0000 (UTC)",
            "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id Bq1jSQ72e5kt; Wed,  4 Mar 2026 16:36:02 +0000 (UTC)",
            "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id DCD7C8131D;\n\tWed,  4 Mar 2026 16:36:01 +0000 (UTC)",
            "from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n by lists1.osuosl.org (Postfix) with ESMTP id 72BC6231\n for <intel-wired-lan@lists.osuosl.org>; Wed,  4 Mar 2026 16:36:00 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp3.osuosl.org (Postfix) with ESMTP id 64D0C6086F\n for <intel-wired-lan@lists.osuosl.org>; Wed,  4 Mar 2026 16:36:00 +0000 (UTC)",
            "from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id A6uZws17hXkr for <intel-wired-lan@lists.osuosl.org>;\n Wed,  4 Mar 2026 16:35:59 +0000 (UTC)",
            "from mgamail.intel.com (mgamail.intel.com [192.198.163.12])\n by smtp3.osuosl.org (Postfix) with ESMTPS id 62C2D6086D\n for <intel-wired-lan@lists.osuosl.org>; Wed,  4 Mar 2026 16:35:59 +0000 (UTC)",
            "from orviesa004.jf.intel.com ([10.64.159.144])\n by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 04 Mar 2026 08:35:59 -0800",
            "from irvmail002.ir.intel.com ([10.43.11.120])\n by orviesa004.jf.intel.com with ESMTP; 04 Mar 2026 08:35:53 -0800",
            "from lincoln.igk.intel.com (lincoln.igk.intel.com [10.102.21.235])\n by irvmail002.ir.intel.com (Postfix) with ESMTP id BF304312C7;\n Wed,  4 Mar 2026 16:35:51 +0000 (GMT)"
        ],
        "X-Virus-Scanned": [
            "amavis at osuosl.org",
            "amavis at osuosl.org"
        ],
        "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ",
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 smtp1.osuosl.org DCD7C8131D",
            "OpenDKIM Filter v2.11.0 smtp3.osuosl.org 62C2D6086D"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1772642161;\n\tbh=85JaUW7+VR7vEIizhHsWsjPW4SHvB0G31tJsfPgiXOw=;\n\th=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=P2nF978NaoEGnaG5mpWTytOwEtLTjuAY0K7/q6TLg0wQ+4zQdQvBc+xJjj8rEJGv9\n\t 4xcnrYCtnQXM5kzT4rpw4mIWdm7+FTR3jL4jiETP+vJBfe1Tib1yg0nf1FTUqjK5Qb\n\t ZlwRwvmEJUo1mKCyYAZxHV2lJWOEV46ZVARDiNtcfJxkgFmv0ALBtP/gFQ3kfwNHWe\n\t MGdQraf3HB8wFFh8W6cyLdnZ0bYROtNxmn4bASvjjhLHba2z8olBRAXOPYEg6xSl5C\n\t FU7/nmxfpHXkujTUFFqnJ1ObCB3GlIPz+zs+G761IQ/EI728/3jLIq8Y/E+KrY4Pa7\n\t hhxtHva+fb9gA==",
        "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.12;\n helo=mgamail.intel.com; envelope-from=larysa.zaremba@intel.com;\n receiver=<UNKNOWN>",
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp3.osuosl.org 62C2D6086D",
        "X-CSE-ConnectionGUID": [
            "pJkdspxeQay6vTX3tiq9lQ==",
            "lF+y7jT5RcqiGUiog+B6jQ=="
        ],
        "X-CSE-MsgGUID": [
            "YhcF/pHvTqiRgHJHkmT3hQ==",
            "u6lXeYHCRa62IxJ2KuQWSQ=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6800,10657,11719\"; a=\"77580016\"",
            "E=Sophos;i=\"6.21,324,1763452800\"; d=\"scan'208\";a=\"77580016\"",
            "E=Sophos;i=\"6.21,324,1763452800\"; d=\"scan'208\";a=\"222895541\""
        ],
        "X-ExtLoop1": "1",
        "From": "Larysa Zaremba <larysa.zaremba@intel.com>",
        "To": "Tony Nguyen <anthony.l.nguyen@intel.com>, intel-wired-lan@lists.osuosl.org",
        "Cc": "Larysa Zaremba <larysa.zaremba@intel.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>,\n \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,\n Paolo Abeni <pabeni@redhat.com>,\n Alexander Lobakin <aleksander.lobakin@intel.com>,\n Simon Horman <horms@kernel.org>, Alexei Starovoitov <ast@kernel.org>,\n Daniel Borkmann <daniel@iogearbox.net>,\n Jesper Dangaard Brouer <hawk@kernel.org>,\n John Fastabend <john.fastabend@gmail.com>,\n Stanislav Fomichev <sdf@fomichev.me>,\n Aleksandr Loktionov <aleksandr.loktionov@intel.com>,\n Natalia Wochtman <natalia.wochtman@intel.com>, netdev@vger.kernel.org,\n linux-kernel@vger.kernel.org, bpf@vger.kernel.org",
        "Date": "Wed,  4 Mar 2026 17:03:33 +0100",
        "Message-ID": "<20260304160345.1340940-2-larysa.zaremba@intel.com>",
        "X-Mailer": "git-send-email 2.52.0",
        "In-Reply-To": "<20260304160345.1340940-1-larysa.zaremba@intel.com>",
        "References": "<20260304160345.1340940-1-larysa.zaremba@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1772642159; x=1804178159;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=Ke6+QbjnyUTSUQFkmee1e2Rk94DLTg4rABOI+jHVLmM=;\n b=S6pKF7kqtEyPh8ASYZcti9zmcbmyfXcAR8p9W27oMpgH3qTV+OpWgzfz\n vDdWxERrXYJcd3FGNueihRep1P5oVlcJ3MYlhQ3YWpciJvfcENf7MCxQQ\n vCuoZZqHJAZtnnIPuAbqcKEQ1OY39xW39eSMOeGcmBCzL8P6pwWS9Cz3I\n WZDyynw41EHBBCmbMu4gzaeR7rcpID3KEoDuwG23Pv6YWLRBBt2F+44rs\n K0//TI2/daKzrb2MmHjaetluW9/LHB3J010CQ+hvLkZ5mKV0JutSeFhLR\n o3dXXbXhxLSHwo63JrBdG4VgXsJMUdvuPXtVAcpGtIEBCqNiOx8pHRwQi\n Q==;",
        "X-Mailman-Original-Authentication-Results": [
            "smtp3.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com",
            "smtp3.osuosl.org;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.a=rsa-sha256 header.s=Intel header.b=S6pKF7kq"
        ],
        "Subject": "[Intel-wired-lan] [PATCH iwl-next v3 01/10] ixgbevf: remove legacy\n Rx",
        "X-BeenThere": "intel-wired-lan@osuosl.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>",
        "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <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 <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>",
        "Errors-To": "intel-wired-lan-bounces@osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"
    },
    "content": "Similarly as in commit 53844673d555 (\"iavf: kill \"legacy-rx\" for good\"),\ndrop skb construction logic in favor of only using napi_build_skb() as a\nsuperior option that reduces the need to allocate and copy memory.\n\nAs IXGBEVF_PRIV_FLAGS_LEGACY_RX is the only private flag in ixgbevf,\nentirely remove private flags support from the driver.\n\nWhen compared to iavf changes, ixgbevf has a single complication: MAC type\n82599 cannot finely limit the DMA write size with RXDCTL.RLPML, only 1024\nincrements through SRRCTL are available, see commit fe68195daf34\n(\"ixgbevf: Require large buffers for build_skb on 82599VF\") and commit\n2bafa8fac19a (\"ixgbe: don't set RXDCTL.RLPML for 82599\"). Therefore, this\nis a special case requiring legacy RX unless large buffers are used. For\nnow, solve this by always using large buffers for this MAC type.\n\nSuggested-by: Alexander Lobakin <aleksander.lobakin@intel.com>\nReviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>\nReviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>\nSigned-off-by: Larysa Zaremba <larysa.zaremba@intel.com>\n---\n drivers/net/ethernet/intel/ixgbevf/ethtool.c  |  48 --------\n drivers/net/ethernet/intel/ixgbevf/ixgbevf.h  |  13 +--\n .../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 106 ++----------------\n 3 files changed, 13 insertions(+), 154 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/ixgbevf/ethtool.c b/drivers/net/ethernet/intel/ixgbevf/ethtool.c\nindex 537a60d5276f..274eef39c586 100644\n--- a/drivers/net/ethernet/intel/ixgbevf/ethtool.c\n+++ b/drivers/net/ethernet/intel/ixgbevf/ethtool.c\n@@ -72,13 +72,6 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {\n \n #define IXGBEVF_TEST_LEN (sizeof(ixgbe_gstrings_test) / ETH_GSTRING_LEN)\n \n-static const char ixgbevf_priv_flags_strings[][ETH_GSTRING_LEN] = {\n-#define IXGBEVF_PRIV_FLAGS_LEGACY_RX\tBIT(0)\n-\t\"legacy-rx\",\n-};\n-\n-#define IXGBEVF_PRIV_FLAGS_STR_LEN ARRAY_SIZE(ixgbevf_priv_flags_strings)\n-\n static int ixgbevf_get_link_ksettings(struct net_device *netdev,\n \t\t\t\t      struct ethtool_link_ksettings *cmd)\n {\n@@ -216,8 +209,6 @@ static void ixgbevf_get_drvinfo(struct net_device *netdev,\n \tstrscpy(drvinfo->driver, ixgbevf_driver_name, sizeof(drvinfo->driver));\n \tstrscpy(drvinfo->bus_info, pci_name(adapter->pdev),\n \t\tsizeof(drvinfo->bus_info));\n-\n-\tdrvinfo->n_priv_flags = IXGBEVF_PRIV_FLAGS_STR_LEN;\n }\n \n static void ixgbevf_get_ringparam(struct net_device *netdev,\n@@ -409,8 +400,6 @@ static int ixgbevf_get_sset_count(struct net_device *netdev, int stringset)\n \t\treturn IXGBEVF_TEST_LEN;\n \tcase ETH_SS_STATS:\n \t\treturn IXGBEVF_STATS_LEN;\n-\tcase ETH_SS_PRIV_FLAGS:\n-\t\treturn IXGBEVF_PRIV_FLAGS_STR_LEN;\n \tdefault:\n \t\treturn -EINVAL;\n \t}\n@@ -538,10 +527,6 @@ static void ixgbevf_get_strings(struct net_device *netdev, u32 stringset,\n \t\t\tp += ETH_GSTRING_LEN;\n \t\t}\n \t\tbreak;\n-\tcase ETH_SS_PRIV_FLAGS:\n-\t\tmemcpy(data, ixgbevf_priv_flags_strings,\n-\t\t       IXGBEVF_PRIV_FLAGS_STR_LEN * ETH_GSTRING_LEN);\n-\t\tbreak;\n \t}\n }\n \n@@ -931,37 +916,6 @@ static int ixgbevf_get_rxfh(struct net_device *netdev,\n \treturn err;\n }\n \n-static u32 ixgbevf_get_priv_flags(struct net_device *netdev)\n-{\n-\tstruct ixgbevf_adapter *adapter = netdev_priv(netdev);\n-\tu32 priv_flags = 0;\n-\n-\tif (adapter->flags & IXGBEVF_FLAGS_LEGACY_RX)\n-\t\tpriv_flags |= IXGBEVF_PRIV_FLAGS_LEGACY_RX;\n-\n-\treturn priv_flags;\n-}\n-\n-static int ixgbevf_set_priv_flags(struct net_device *netdev, u32 priv_flags)\n-{\n-\tstruct ixgbevf_adapter *adapter = netdev_priv(netdev);\n-\tunsigned int flags = adapter->flags;\n-\n-\tflags &= ~IXGBEVF_FLAGS_LEGACY_RX;\n-\tif (priv_flags & IXGBEVF_PRIV_FLAGS_LEGACY_RX)\n-\t\tflags |= IXGBEVF_FLAGS_LEGACY_RX;\n-\n-\tif (flags != adapter->flags) {\n-\t\tadapter->flags = flags;\n-\n-\t\t/* reset interface to repopulate queues */\n-\t\tif (netif_running(netdev))\n-\t\t\tixgbevf_reinit_locked(adapter);\n-\t}\n-\n-\treturn 0;\n-}\n-\n static const struct ethtool_ops ixgbevf_ethtool_ops = {\n \t.supported_coalesce_params = ETHTOOL_COALESCE_USECS,\n \t.get_drvinfo\t\t= ixgbevf_get_drvinfo,\n@@ -984,8 +938,6 @@ static const struct ethtool_ops ixgbevf_ethtool_ops = {\n \t.get_rxfh_key_size\t= ixgbevf_get_rxfh_key_size,\n \t.get_rxfh\t\t= ixgbevf_get_rxfh,\n \t.get_link_ksettings\t= ixgbevf_get_link_ksettings,\n-\t.get_priv_flags\t\t= ixgbevf_get_priv_flags,\n-\t.set_priv_flags\t\t= ixgbevf_set_priv_flags,\n };\n \n void ixgbevf_set_ethtool_ops(struct net_device *netdev)\ndiff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h\nindex 516a6fdd23d0..ae2763fea2be 100644\n--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h\n+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h\n@@ -73,7 +73,6 @@ struct ixgbevf_rx_queue_stats {\n \n enum ixgbevf_ring_state_t {\n \t__IXGBEVF_RX_3K_BUFFER,\n-\t__IXGBEVF_RX_BUILD_SKB_ENABLED,\n \t__IXGBEVF_TX_DETECT_HANG,\n \t__IXGBEVF_HANG_CHECK_ARMED,\n \t__IXGBEVF_TX_XDP_RING,\n@@ -176,21 +175,13 @@ struct ixgbevf_ring {\n #define clear_ring_uses_large_buffer(ring) \\\n \tclear_bit(__IXGBEVF_RX_3K_BUFFER, &(ring)->state)\n \n-#define ring_uses_build_skb(ring) \\\n-\ttest_bit(__IXGBEVF_RX_BUILD_SKB_ENABLED, &(ring)->state)\n-#define set_ring_build_skb_enabled(ring) \\\n-\tset_bit(__IXGBEVF_RX_BUILD_SKB_ENABLED, &(ring)->state)\n-#define clear_ring_build_skb_enabled(ring) \\\n-\tclear_bit(__IXGBEVF_RX_BUILD_SKB_ENABLED, &(ring)->state)\n-\n static inline unsigned int ixgbevf_rx_bufsz(struct ixgbevf_ring *ring)\n {\n #if (PAGE_SIZE < 8192)\n \tif (ring_uses_large_buffer(ring))\n \t\treturn IXGBEVF_RXBUFFER_3072;\n \n-\tif (ring_uses_build_skb(ring))\n-\t\treturn IXGBEVF_MAX_FRAME_BUILD_SKB;\n+\treturn IXGBEVF_MAX_FRAME_BUILD_SKB;\n #endif\n \treturn IXGBEVF_RXBUFFER_2048;\n }\n@@ -377,8 +368,6 @@ struct ixgbevf_adapter {\n \tu32 flags;\n \tbool link_state;\n \n-#define IXGBEVF_FLAGS_LEGACY_RX\t\tBIT(1)\n-\n #ifdef CONFIG_XFRM\n \tstruct ixgbevf_ipsec *ipsec;\n #endif /* CONFIG_XFRM */\ndiff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c\nindex d5ce20f47def..fc48c89c7bb8 100644\n--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c\n+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c\n@@ -602,7 +602,7 @@ static bool ixgbevf_is_non_eop(struct ixgbevf_ring *rx_ring,\n \n static inline unsigned int ixgbevf_rx_offset(struct ixgbevf_ring *rx_ring)\n {\n-\treturn ring_uses_build_skb(rx_ring) ? IXGBEVF_SKB_PAD : 0;\n+\treturn IXGBEVF_SKB_PAD;\n }\n \n static bool ixgbevf_alloc_mapped_page(struct ixgbevf_ring *rx_ring,\n@@ -832,9 +832,7 @@ static void ixgbevf_add_rx_frag(struct ixgbevf_ring *rx_ring,\n #if (PAGE_SIZE < 8192)\n \tunsigned int truesize = ixgbevf_rx_pg_size(rx_ring) / 2;\n #else\n-\tunsigned int truesize = ring_uses_build_skb(rx_ring) ?\n-\t\t\t\tSKB_DATA_ALIGN(IXGBEVF_SKB_PAD + size) :\n-\t\t\t\tSKB_DATA_ALIGN(size);\n+\tunsigned int truesize = SKB_DATA_ALIGN(IXGBEVF_SKB_PAD + size);\n #endif\n \tskb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_buffer->page,\n \t\t\trx_buffer->page_offset, size, truesize);\n@@ -845,74 +843,6 @@ static void ixgbevf_add_rx_frag(struct ixgbevf_ring *rx_ring,\n #endif\n }\n \n-static\n-struct sk_buff *ixgbevf_construct_skb(struct ixgbevf_ring *rx_ring,\n-\t\t\t\t      struct ixgbevf_rx_buffer *rx_buffer,\n-\t\t\t\t      struct xdp_buff *xdp,\n-\t\t\t\t      union ixgbe_adv_rx_desc *rx_desc)\n-{\n-\tunsigned int size = xdp->data_end - xdp->data;\n-#if (PAGE_SIZE < 8192)\n-\tunsigned int truesize = ixgbevf_rx_pg_size(rx_ring) / 2;\n-#else\n-\tunsigned int truesize = SKB_DATA_ALIGN(xdp->data_end -\n-\t\t\t\t\t       xdp->data_hard_start);\n-#endif\n-\tunsigned int headlen;\n-\tstruct sk_buff *skb;\n-\n-\t/* prefetch first cache line of first page */\n-\tnet_prefetch(xdp->data);\n-\n-\t/* Note, we get here by enabling legacy-rx via:\n-\t *\n-\t *    ethtool --set-priv-flags <dev> legacy-rx on\n-\t *\n-\t * In this mode, we currently get 0 extra XDP headroom as\n-\t * opposed to having legacy-rx off, where we process XDP\n-\t * packets going to stack via ixgbevf_build_skb().\n-\t *\n-\t * For ixgbevf_construct_skb() mode it means that the\n-\t * xdp->data_meta will always point to xdp->data, since\n-\t * the helper cannot expand the head. Should this ever\n-\t * changed in future for legacy-rx mode on, then lets also\n-\t * add xdp->data_meta handling here.\n-\t */\n-\n-\t/* allocate a skb to store the frags */\n-\tskb = napi_alloc_skb(&rx_ring->q_vector->napi, IXGBEVF_RX_HDR_SIZE);\n-\tif (unlikely(!skb))\n-\t\treturn NULL;\n-\n-\t/* Determine available headroom for copy */\n-\theadlen = size;\n-\tif (headlen > IXGBEVF_RX_HDR_SIZE)\n-\t\theadlen = eth_get_headlen(skb->dev, xdp->data,\n-\t\t\t\t\t  IXGBEVF_RX_HDR_SIZE);\n-\n-\t/* align pull length to size of long to optimize memcpy performance */\n-\tmemcpy(__skb_put(skb, headlen), xdp->data,\n-\t       ALIGN(headlen, sizeof(long)));\n-\n-\t/* update all of the pointers */\n-\tsize -= headlen;\n-\tif (size) {\n-\t\tskb_add_rx_frag(skb, 0, rx_buffer->page,\n-\t\t\t\t(xdp->data + headlen) -\n-\t\t\t\t\tpage_address(rx_buffer->page),\n-\t\t\t\tsize, truesize);\n-#if (PAGE_SIZE < 8192)\n-\t\trx_buffer->page_offset ^= truesize;\n-#else\n-\t\trx_buffer->page_offset += truesize;\n-#endif\n-\t} else {\n-\t\trx_buffer->pagecnt_bias++;\n-\t}\n-\n-\treturn skb;\n-}\n-\n static inline void ixgbevf_irq_enable_queues(struct ixgbevf_adapter *adapter,\n \t\t\t\t\t     u32 qmask)\n {\n@@ -1092,10 +1022,8 @@ static unsigned int ixgbevf_rx_frame_truesize(struct ixgbevf_ring *rx_ring,\n #if (PAGE_SIZE < 8192)\n \ttruesize = ixgbevf_rx_pg_size(rx_ring) / 2; /* Must be power-of-2 */\n #else\n-\ttruesize = ring_uses_build_skb(rx_ring) ?\n-\t\tSKB_DATA_ALIGN(IXGBEVF_SKB_PAD + size) +\n-\t\tSKB_DATA_ALIGN(sizeof(struct skb_shared_info)) :\n-\t\tSKB_DATA_ALIGN(size);\n+\ttruesize = SKB_DATA_ALIGN(IXGBEVF_SKB_PAD + size) +\n+\t\t   SKB_DATA_ALIGN(sizeof(struct skb_shared_info));\n #endif\n \treturn truesize;\n }\n@@ -1182,12 +1110,9 @@ static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector,\n \t\t\ttotal_rx_bytes += size;\n \t\t} else if (skb) {\n \t\t\tixgbevf_add_rx_frag(rx_ring, rx_buffer, skb, size);\n-\t\t} else if (ring_uses_build_skb(rx_ring)) {\n+\t\t} else {\n \t\t\tskb = ixgbevf_build_skb(rx_ring, rx_buffer,\n \t\t\t\t\t\t&xdp, rx_desc);\n-\t\t} else {\n-\t\t\tskb = ixgbevf_construct_skb(rx_ring, rx_buffer,\n-\t\t\t\t\t\t    &xdp, rx_desc);\n \t\t}\n \n \t\t/* exit if we failed to retrieve a buffer */\n@@ -1958,8 +1883,7 @@ static void ixgbevf_configure_rx_ring(struct ixgbevf_adapter *adapter,\n \n #if (PAGE_SIZE < 8192)\n \t\t/* Limit the maximum frame size so we don't overrun the skb */\n-\t\tif (ring_uses_build_skb(ring) &&\n-\t\t    !ring_uses_large_buffer(ring))\n+\t\tif (!ring_uses_large_buffer(ring))\n \t\t\trxdctl |= IXGBEVF_MAX_FRAME_BUILD_SKB |\n \t\t\t\t  IXGBE_RXDCTL_RLPML_EN;\n #endif\n@@ -1978,22 +1902,16 @@ static void ixgbevf_set_rx_buffer_len(struct ixgbevf_adapter *adapter,\n \tstruct net_device *netdev = adapter->netdev;\n \tunsigned int max_frame = netdev->mtu + ETH_HLEN + ETH_FCS_LEN;\n \n-\t/* set build_skb and buffer size flags */\n-\tclear_ring_build_skb_enabled(rx_ring);\n+\t/* set buffer size flags */\n \tclear_ring_uses_large_buffer(rx_ring);\n \n-\tif (adapter->flags & IXGBEVF_FLAGS_LEGACY_RX)\n-\t\treturn;\n-\n \tif (PAGE_SIZE < 8192)\n-\t\tif (max_frame > IXGBEVF_MAX_FRAME_BUILD_SKB)\n+\t\t/* 82599 can't rely on RXDCTL.RLPML to restrict\n+\t\t * the size of the frame\n+\t\t */\n+\t\tif (max_frame > IXGBEVF_MAX_FRAME_BUILD_SKB ||\n+\t\t    adapter->hw.mac.type == ixgbe_mac_82599_vf)\n \t\t\tset_ring_uses_large_buffer(rx_ring);\n-\n-\t/* 82599 can't rely on RXDCTL.RLPML to restrict the size of the frame */\n-\tif (adapter->hw.mac.type == ixgbe_mac_82599_vf && !ring_uses_large_buffer(rx_ring))\n-\t\treturn;\n-\n-\tset_ring_build_skb_enabled(rx_ring);\n }\n \n /**\n",
    "prefixes": [
        "iwl-next",
        "v3",
        "01/10"
    ]
}