get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 744007,
    "url": "http://patchwork.ozlabs.org/api/patches/744007/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1490650998-14889-1-git-send-email-bimmy.pujari@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": "<1490650998-14889-1-git-send-email-bimmy.pujari@intel.com>",
    "list_archive_url": null,
    "date": "2017-03-27T21:43:18",
    "name": "[next,S64,1/1] i40e/i40evf: Add capability exchange for outer checksum",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "69d91cf4b9f7ddd2509d5ca48862bef93535d5aa",
    "submitter": {
        "id": 68919,
        "url": "http://patchwork.ozlabs.org/api/people/68919/?format=api",
        "name": "Pujari, Bimmy",
        "email": "bimmy.pujari@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/1490650998-14889-1-git-send-email-bimmy.pujari@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/744007/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/744007/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@lists.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"
        ],
        "Received": [
            "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3vsSJT6lqpz9s79\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 28 Mar 2017 08:46:01 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 5C1DE2FE2A;\n\tMon, 27 Mar 2017 21:46:00 +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 bWLK1KFOJ9H4; Mon, 27 Mar 2017 21:45:57 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 2EE542FC7B;\n\tMon, 27 Mar 2017 21:45:57 +0000 (UTC)",
            "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id EED571C04BA\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 27 Mar 2017 21:45:55 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id E7BAE83CC0\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 27 Mar 2017 21:45:55 +0000 (UTC)",
            "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 2mBjTaHRvEtq for <intel-wired-lan@lists.osuosl.org>;\n\tMon, 27 Mar 2017 21:45:54 +0000 (UTC)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby whitealder.osuosl.org (Postfix) with ESMTPS id AFB7D83C45\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 27 Mar 2017 21:45:54 +0000 (UTC)",
            "from fmsmga002.fm.intel.com ([10.253.24.26])\n\tby fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t27 Mar 2017 14:45:54 -0700",
            "from bimmy.jf.intel.com (HELO bimmy.linux1.jf.intel.com)\n\t([10.166.35.87])\n\tby fmsmga002.fm.intel.com with ESMTP; 27 Mar 2017 14:45:53 -0700"
        ],
        "Authentication-Results": "ozlabs.org;\n\tdkim=fail reason=\"key not found in DNS\" (0-bit key;\n\tunprotected) header.d=intel.com header.i=@intel.com\n\theader.b=\"KCIyvlb2\"; dkim-atps=neutral",
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=simple/simple;\n\td=intel.com; i=@intel.com; q=dns/txt; s=intel;\n\tt=1490651154; x=1522187154;\n\th=from:to:cc:subject:date:message-id;\n\tbh=kLhnNlThEcMNrLzGDyqGaBqF+ojPY/8PYyFSEs1lb38=;\n\tb=KCIyvlb2jH7kvw6uTI0p6rPAzd930CDOfcuSv8uYqfK9wCBfxLQ/NUPg\n\t9vsqhzkmMD7d+Pznjveq3m/8wnejrw==;",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos; i=\"5.36,233,1486454400\"; d=\"scan'208\";\n\ta=\"1147633891\"",
        "From": "Bimmy Pujari <bimmy.pujari@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Mon, 27 Mar 2017 14:43:18 -0700",
        "Message-Id": "<1490650998-14889-1-git-send-email-bimmy.pujari@intel.com>",
        "X-Mailer": "git-send-email 2.4.11",
        "Cc": "Alexander Duyck <aduyck@mirantis.com>",
        "Subject": "[Intel-wired-lan] [next PATCH S64 1/1] i40e/i40evf: Add capability\n\texchange for outer checksum",
        "X-BeenThere": "intel-wired-lan@lists.osuosl.org",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>",
        "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>",
        "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>"
    },
    "content": "From: Preethi Banala <preethi.banala@intel.com>\n\nThis patch adds a capability negotiation between VF and PF using ENCAP/\nENCAP_CSUM offload flags in order for the VF to support outer checksum\nand TSO offloads for encapsulated packets. These capabilities were assumed\nby default and enabled in current hardware. Going forward, these features\nneeds to be negotiated with PF before advertising to the stack.\nAdditionally, strip out the mac.type checks for X722 since outer checksums\nare enabled based on the ENCAP_CSUM offload negotiation flag and maintain\nconsistency between drivers in how the features are configured.\n\nSigned-off-by: Preethi Banala <preethi.banala@intel.com>\nSigned-off-by: Alan Brady <alan.brady@intel.com>\nSigned-off-by: Alexander Duyck <aduyck@mirantis.com>\nSigned-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\nChange-ID: Ie380a6f57eca557a2bb575b66b12fae36d308920\n---\n drivers/net/ethernet/intel/i40e/i40e_main.c        | 52 +++++++++---------\n drivers/net/ethernet/intel/i40e/i40e_virtchnl.h    |  3 +-\n drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c |  7 +++\n drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h  |  3 +-\n drivers/net/ethernet/intel/i40evf/i40evf_main.c    | 61 ++++++++++++----------\n .../net/ethernet/intel/i40evf/i40evf_virtchnl.c    |  4 +-\n 6 files changed, 74 insertions(+), 56 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex 9ce06e8..a0f7e42 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -9240,6 +9240,8 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)\n \tu8 broadcast[ETH_ALEN];\n \tu8 mac_addr[ETH_ALEN];\n \tint etherdev_size;\n+\tnetdev_features_t hw_enc_features;\n+\tnetdev_features_t hw_features;\n \n \tetherdev_size = sizeof(struct i40e_netdev_priv);\n \tnetdev = alloc_etherdev_mq(etherdev_size, vsi->alloc_queue_pairs);\n@@ -9250,43 +9252,43 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)\n \tnp = netdev_priv(netdev);\n \tnp->vsi = vsi;\n \n-\tnetdev->hw_enc_features |= NETIF_F_SG\t\t\t|\n-\t\t\t\t   NETIF_F_IP_CSUM\t\t|\n-\t\t\t\t   NETIF_F_IPV6_CSUM\t\t|\n-\t\t\t\t   NETIF_F_HIGHDMA\t\t|\n-\t\t\t\t   NETIF_F_SOFT_FEATURES\t|\n-\t\t\t\t   NETIF_F_TSO\t\t\t|\n-\t\t\t\t   NETIF_F_TSO_ECN\t\t|\n-\t\t\t\t   NETIF_F_TSO6\t\t\t|\n-\t\t\t\t   NETIF_F_GSO_GRE\t\t|\n-\t\t\t\t   NETIF_F_GSO_GRE_CSUM\t\t|\n-\t\t\t\t   NETIF_F_GSO_IPXIP4\t\t|\n-\t\t\t\t   NETIF_F_GSO_IPXIP6\t\t|\n-\t\t\t\t   NETIF_F_GSO_UDP_TUNNEL\t|\n-\t\t\t\t   NETIF_F_GSO_UDP_TUNNEL_CSUM\t|\n-\t\t\t\t   NETIF_F_GSO_PARTIAL\t\t|\n-\t\t\t\t   NETIF_F_SCTP_CRC\t\t|\n-\t\t\t\t   NETIF_F_RXHASH\t\t|\n-\t\t\t\t   NETIF_F_RXCSUM\t\t|\n-\t\t\t\t   0;\n+\thw_enc_features = NETIF_F_SG\t\t\t|\n+\t\t\t  NETIF_F_IP_CSUM\t\t|\n+\t\t\t  NETIF_F_IPV6_CSUM\t\t|\n+\t\t\t  NETIF_F_HIGHDMA\t\t|\n+\t\t\t  NETIF_F_SOFT_FEATURES\t\t|\n+\t\t\t  NETIF_F_TSO\t\t\t|\n+\t\t\t  NETIF_F_TSO_ECN\t\t|\n+\t\t\t  NETIF_F_TSO6\t\t\t|\n+\t\t\t  NETIF_F_GSO_GRE\t\t|\n+\t\t\t  NETIF_F_GSO_GRE_CSUM\t\t|\n+\t\t\t  NETIF_F_GSO_PARTIAL\t\t|\n+\t\t\t  NETIF_F_GSO_UDP_TUNNEL\t|\n+\t\t\t  NETIF_F_GSO_UDP_TUNNEL_CSUM\t|\n+\t\t\t  NETIF_F_SCTP_CRC\t\t|\n+\t\t\t  NETIF_F_RXHASH\t\t|\n+\t\t\t  NETIF_F_RXCSUM\t\t|\n+\t\t\t  0;\n \n \tif (!(pf->flags & I40E_FLAG_OUTER_UDP_CSUM_CAPABLE))\n \t\tnetdev->gso_partial_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;\n \n \tnetdev->gso_partial_features |= NETIF_F_GSO_GRE_CSUM;\n \n+\tnetdev->hw_enc_features |= hw_enc_features;\n+\n \t/* record features VLANs can make use of */\n-\tnetdev->vlan_features |= netdev->hw_enc_features |\n-\t\t\t\t NETIF_F_TSO_MANGLEID;\n+\tnetdev->vlan_features |= hw_enc_features | NETIF_F_TSO_MANGLEID;\n \n \tif (!(pf->flags & I40E_FLAG_MFP_ENABLED))\n \t\tnetdev->hw_features |= NETIF_F_NTUPLE;\n+\thw_features = hw_enc_features\t\t|\n+\t\t      NETIF_F_HW_VLAN_CTAG_TX\t|\n+\t\t      NETIF_F_HW_VLAN_CTAG_RX;\n \n-\tnetdev->hw_features |= netdev->hw_enc_features\t|\n-\t\t\t       NETIF_F_HW_VLAN_CTAG_TX\t|\n-\t\t\t       NETIF_F_HW_VLAN_CTAG_RX;\n+\tnetdev->hw_features |= hw_features;\n \n-\tnetdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_CTAG_FILTER;\n+\tnetdev->features |= hw_features | NETIF_F_HW_VLAN_CTAG_FILTER;\n \tnetdev->hw_enc_features |= NETIF_F_TSO_MANGLEID;\n \n \tif (vsi->type == I40E_VSI_MAIN) {\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h b/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h\nindex 974ba2b..8552192 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h\n@@ -163,7 +163,8 @@ struct i40e_virtchnl_vsi_resource {\n #define I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING\t0x00020000\n #define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2\t0x00040000\n #define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF\t\t0X00080000\n-#define I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM\t0X00100000\n+#define I40E_VIRTCHNL_VF_OFFLOAD_ENCAP\t\t0X00100000\n+#define I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM\t0X00200000\n \n #define I40E_VF_BASE_MODE_OFFLOADS (I40E_VIRTCHNL_VF_OFFLOAD_L2 | \\\n \t\t\t\t    I40E_VIRTCHNL_VF_OFFLOAD_VLAN | \\\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\nindex d526940..65c95ff 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n@@ -1408,6 +1408,13 @@ static int i40e_vc_get_vf_resources_msg(struct i40e_vf *vf, u8 *msg)\n \t\t\t\tI40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2;\n \t}\n \n+\tif (vf->driver_caps & I40E_VIRTCHNL_VF_OFFLOAD_ENCAP)\n+\t\tvfres->vf_offload_flags |= I40E_VIRTCHNL_VF_OFFLOAD_ENCAP;\n+\n+\tif ((pf->flags & I40E_FLAG_OUTER_UDP_CSUM_CAPABLE) &&\n+\t    (vf->driver_caps & I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM))\n+\t\tvfres->vf_offload_flags |= I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM;\n+\n \tif (vf->driver_caps & I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING) {\n \t\tif (pf->flags & I40E_FLAG_MFP_ENABLED) {\n \t\t\tdev_err(&pf->pdev->dev,\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h b/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h\nindex f431fbc..c5ad038 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h\n+++ b/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h\n@@ -163,7 +163,8 @@ struct i40e_virtchnl_vsi_resource {\n #define I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING\t0x00020000\n #define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2\t0x00040000\n #define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF\t\t0X00080000\n-#define I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM\t0X00100000\n+#define I40E_VIRTCHNL_VF_OFFLOAD_ENCAP\t\t0X00100000\n+#define I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM\t0X00200000\n \n #define I40E_VF_BASE_MODE_OFFLOADS (I40E_VIRTCHNL_VF_OFFLOAD_L2 | \\\n \t\t\t\t    I40E_VIRTCHNL_VF_OFFLOAD_VLAN | \\\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c\nindex fb2811c..c690aba 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c\n+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c\n@@ -2401,6 +2401,8 @@ int i40evf_process_config(struct i40evf_adapter *adapter)\n \tstruct net_device *netdev = adapter->netdev;\n \tstruct i40e_vsi *vsi = &adapter->vsi;\n \tint i;\n+\tnetdev_features_t hw_enc_features;\n+\tnetdev_features_t hw_features;\n \n \t/* got VF config message back from PF, now we can parse it */\n \tfor (i = 0; i < vfres->num_vsis; i++) {\n@@ -2412,46 +2414,52 @@ int i40evf_process_config(struct i40evf_adapter *adapter)\n \t\treturn -ENODEV;\n \t}\n \n-\tnetdev->hw_enc_features |= NETIF_F_SG\t\t\t|\n-\t\t\t\t   NETIF_F_IP_CSUM\t\t|\n-\t\t\t\t   NETIF_F_IPV6_CSUM\t\t|\n-\t\t\t\t   NETIF_F_HIGHDMA\t\t|\n-\t\t\t\t   NETIF_F_SOFT_FEATURES\t|\n-\t\t\t\t   NETIF_F_TSO\t\t\t|\n-\t\t\t\t   NETIF_F_TSO_ECN\t\t|\n-\t\t\t\t   NETIF_F_TSO6\t\t\t|\n+\thw_enc_features = NETIF_F_SG\t\t\t|\n+\t\t\t  NETIF_F_IP_CSUM\t\t|\n+\t\t\t  NETIF_F_IPV6_CSUM\t\t|\n+\t\t\t  NETIF_F_HIGHDMA\t\t|\n+\t\t\t  NETIF_F_SOFT_FEATURES\t|\n+\t\t\t  NETIF_F_TSO\t\t\t|\n+\t\t\t  NETIF_F_TSO_ECN\t\t|\n+\t\t\t  NETIF_F_TSO6\t\t\t|\n+\t\t\t  NETIF_F_SCTP_CRC\t\t|\n+\t\t\t  NETIF_F_RXHASH\t\t|\n+\t\t\t  NETIF_F_RXCSUM\t\t|\n+\t\t\t  0;\n+\n+\t/* advertise to stack only if offloads for encapsulated packets is\n+\t * supported\n+\t */\n+\tif (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_ENCAP) {\n+\t\thw_enc_features |= NETIF_F_GSO_UDP_TUNNEL\t|\n \t\t\t\t   NETIF_F_GSO_GRE\t\t|\n \t\t\t\t   NETIF_F_GSO_GRE_CSUM\t\t|\n \t\t\t\t   NETIF_F_GSO_IPXIP4\t\t|\n \t\t\t\t   NETIF_F_GSO_IPXIP6\t\t|\n-\t\t\t\t   NETIF_F_GSO_UDP_TUNNEL\t|\n \t\t\t\t   NETIF_F_GSO_UDP_TUNNEL_CSUM\t|\n \t\t\t\t   NETIF_F_GSO_PARTIAL\t\t|\n-\t\t\t\t   NETIF_F_SCTP_CRC\t\t|\n-\t\t\t\t   NETIF_F_RXHASH\t\t|\n-\t\t\t\t   NETIF_F_RXCSUM\t\t|\n \t\t\t\t   0;\n \n-\tif (!(adapter->flags & I40EVF_FLAG_OUTER_UDP_CSUM_CAPABLE))\n-\t\tnetdev->gso_partial_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;\n-\n-\tnetdev->gso_partial_features |= NETIF_F_GSO_GRE_CSUM;\n+\t\tif (!(vfres->vf_offload_flags &\n+\t\t      I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM))\n+\t\t\tnetdev->gso_partial_features |=\n+\t\t\t\tNETIF_F_GSO_UDP_TUNNEL_CSUM;\n \n+\t\tnetdev->gso_partial_features |= NETIF_F_GSO_GRE_CSUM;\n+\t\tnetdev->hw_enc_features |= NETIF_F_TSO_MANGLEID;\n+\t\tnetdev->hw_enc_features |= hw_enc_features;\n+\t}\n \t/* record features VLANs can make use of */\n-\tnetdev->vlan_features |= netdev->hw_enc_features |\n-\t\t\t\t NETIF_F_TSO_MANGLEID;\n+\tnetdev->vlan_features |= hw_enc_features | NETIF_F_TSO_MANGLEID;\n \n \t/* Write features and hw_features separately to avoid polluting\n-\t * with, or dropping, features that are set when we registgered.\n+\t * with, or dropping, features that are set when we registered.\n \t */\n-\tnetdev->hw_features |= netdev->hw_enc_features;\n+\thw_features = hw_enc_features;\n \n-\tnetdev->features |= netdev->hw_enc_features | I40EVF_VLAN_FEATURES;\n-\tnetdev->hw_enc_features |= NETIF_F_TSO_MANGLEID;\n+\tnetdev->hw_features |= hw_features;\n \n-\t/* disable VLAN features if not supported */\n-\tif (!(vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN))\n-\t\tnetdev->features ^= I40EVF_VLAN_FEATURES;\n+\tnetdev->features |= hw_features | I40EVF_VLAN_FEATURES;\n \n \tadapter->vsi.id = adapter->vsi_res->vsi_id;\n \n@@ -2592,9 +2600,6 @@ static void i40evf_init_task(struct work_struct *work)\n \t\tgoto err_alloc;\n \t}\n \n-\tif (hw->mac.type == I40E_MAC_X722_VF)\n-\t\tadapter->flags |= I40EVF_FLAG_OUTER_UDP_CSUM_CAPABLE;\n-\n \tif (i40evf_process_config(adapter))\n \t\tgoto err_alloc;\n \tadapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN;\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c\nindex 032be8d..3bccfbb 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c\n+++ b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c\n@@ -159,7 +159,9 @@ int i40evf_send_vf_config_msg(struct i40evf_adapter *adapter)\n \t       I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG |\n \t       I40E_VIRTCHNL_VF_OFFLOAD_VLAN |\n \t       I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR |\n-\t       I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2;\n+\t       I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2 |\n+\t       I40E_VIRTCHNL_VF_OFFLOAD_ENCAP |\n+\t       I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM;\n \n \tadapter->current_op = I40E_VIRTCHNL_OP_GET_VF_RESOURCES;\n \tadapter->aq_required &= ~I40EVF_FLAG_AQ_GET_CONFIG;\n",
    "prefixes": [
        "next",
        "S64",
        "1/1"
    ]
}