get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 643166,
    "url": "http://patchwork.ozlabs.org/api/patches/643166/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1467393080-2202-1-git-send-email-tushar.n.dave@oracle.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": "<1467393080-2202-1-git-send-email-tushar.n.dave@oracle.com>",
    "list_archive_url": null,
    "date": "2016-07-01T17:11:20",
    "name": "i40e: Explicitly write platform-specific mac address after PF reset",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "62eb724ddb22068ba9fe27157bbf1429c32e564b",
    "submitter": {
        "id": 68023,
        "url": "http://patchwork.ozlabs.org/api/people/68023/?format=api",
        "name": "Tushar Dave",
        "email": "tushar.n.dave@oracle.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/1467393080-2202-1-git-send-email-tushar.n.dave@oracle.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/643166/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/643166/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 fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\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 3rh2yC44f3z9sCy\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  2 Jul 2016 03:11:47 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id D3F03C380A;\n\tFri,  1 Jul 2016 17:11:45 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 8EI7sbLstxlS; Fri,  1 Jul 2016 17:11:44 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 58900C3806;\n\tFri,  1 Jul 2016 17:11:44 +0000 (UTC)",
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id D720D1C160D\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  1 Jul 2016 17:11:43 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id D0A18C3806\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  1 Jul 2016 17:11:43 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 8RKQi4IFJRQZ for <intel-wired-lan@lists.osuosl.org>;\n\tFri,  1 Jul 2016 17:11:43 +0000 (UTC)",
            "from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id E460BC3802\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  1 Jul 2016 17:11:42 +0000 (UTC)",
            "from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71])\n\tby aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with\n\tESMTP id u61HBdvM011202\n\t(version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);\n\tFri, 1 Jul 2016 17:11:40 GMT",
            "from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72])\n\tby userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u61HBdlm019221\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);\n\tFri, 1 Jul 2016 17:11:39 GMT",
            "from abhmp0014.oracle.com (abhmp0014.oracle.com [141.146.116.20])\n\tby userv0121.oracle.com (8.13.8/8.13.8) with ESMTP id\n\tu61HBah0003004; Fri, 1 Jul 2016 17:11:38 GMT",
            "from tndave-linux.us.oracle.com (/10.154.134.49)\n\tby default (Oracle Beehive Gateway v4.0)\n\twith ESMTP ; Fri, 01 Jul 2016 10:11:36 -0700"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "From": "Tushar Dave <tushar.n.dave@oracle.com>",
        "To": "jeffrey.t.kirsher@intel.com, jesse.brandeburg@intel.com,\n\tshannon.nelson@intel.com, carolyn.wyborny@intel.com,\n\tdonald.c.skidmore@intel.com, bruce.w.allan@intel.com,\n\tjohn.ronciak@intel.com, mitch.a.williams@intel.com,\n\tintel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org",
        "Date": "Fri,  1 Jul 2016 10:11:20 -0700",
        "Message-Id": "<1467393080-2202-1-git-send-email-tushar.n.dave@oracle.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "X-Source-IP": "userv0021.oracle.com [156.151.31.71]",
        "Cc": "sowmini.varadhan@oracle.com",
        "Subject": "[Intel-wired-lan] [PATCH] i40e: Explicitly write platform-specific\n\tmac address after PF reset",
        "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": "i40e PF reset clears mac filters. If platform-specific mac address\nis used, driver has to explicitly write default mac address to mac\nfilters otherwise all incoming traffic destined to default mac\naddress will be dropped after reset.\n\nThis issue was found on SPARC while toggling i40e ntuple via ethtool.\n\nSigned-off-by: Tushar Dave <tushar.n.dave@oracle.com>\nAcked-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>\n---\n drivers/net/ethernet/intel/i40e/i40e_main.c | 87 ++++++++++++++++-------------\n 1 file changed, 49 insertions(+), 38 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex 3449129..b330723 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -2573,6 +2573,44 @@ static int i40e_vlan_rx_kill_vid(struct net_device *netdev,\n }\n \n /**\n+ * i40e_macaddr_init - explicitly write the mac address filters.\n+ *\n+ * @vsi: pointer to the vsi.\n+ * @macaddr: the MAC address\n+ *\n+ * This is needed when the macaddr has been obtained by other\n+ * means than the default, e.g., from Open Firmware or IDPROM.\n+ * Returns 0 on success, negative on failure\n+ **/\n+static int i40e_macaddr_init(struct i40e_vsi *vsi, u8 *macaddr)\n+{\n+\tint ret;\n+\tstruct i40e_aqc_add_macvlan_element_data element;\n+\n+\tret = i40e_aq_mac_address_write(&vsi->back->hw,\n+\t\t\t\t\tI40E_AQC_WRITE_TYPE_LAA_WOL,\n+\t\t\t\t\tmacaddr, NULL);\n+\tif (ret) {\n+\t\tdev_info(&vsi->back->pdev->dev,\n+\t\t\t \"Addr change for VSI failed: %d\\n\", ret);\n+\t\treturn -EADDRNOTAVAIL;\n+\t}\n+\n+\tmemset(&element, 0, sizeof(element));\n+\tether_addr_copy(element.mac_addr, macaddr);\n+\telement.flags = cpu_to_le16(I40E_AQC_MACVLAN_ADD_PERFECT_MATCH);\n+\tret = i40e_aq_add_macvlan(&vsi->back->hw, vsi->seid, &element, 1, NULL);\n+\tif (ret) {\n+\t\tdev_info(&vsi->back->pdev->dev,\n+\t\t\t \"add filter failed err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&vsi->back->hw, ret),\n+\t\t\t i40e_aq_str(&vsi->back->hw,\n+\t\t\t\t     vsi->back->hw.aq.asq_last_status));\n+\t}\n+\treturn ret;\n+}\n+\n+/**\n  * i40e_restore_vlan - Reinstate vlans when vsi/netdev comes back up\n  * @vsi: the vsi being brought back up\n  **/\n@@ -3058,8 +3096,19 @@ static void i40e_vsi_config_dcb_rings(struct i40e_vsi *vsi)\n  **/\n static void i40e_set_vsi_rx_mode(struct i40e_vsi *vsi)\n {\n+\tstruct i40e_pf *pf = vsi->back;\n+\tint err;\n+\n \tif (vsi->netdev)\n \t\ti40e_set_rx_mode(vsi->netdev);\n+\n+\tif (!!(pf->flags & I40E_FLAG_PF_MAC)) {\n+\t\terr = i40e_macaddr_init(vsi, pf->hw.mac.addr);\n+\t\tif (err) {\n+\t\t\tdev_warn(&pf->pdev->dev,\n+\t\t\t\t \"could not set up macaddr; err %d\\n\", err);\n+\t\t}\n+\t}\n }\n \n /**\n@@ -9719,44 +9768,6 @@ err_vsi:\n }\n \n /**\n- * i40e_macaddr_init - explicitly write the mac address filters.\n- *\n- * @vsi: pointer to the vsi.\n- * @macaddr: the MAC address\n- *\n- * This is needed when the macaddr has been obtained by other\n- * means than the default, e.g., from Open Firmware or IDPROM.\n- * Returns 0 on success, negative on failure\n- **/\n-static int i40e_macaddr_init(struct i40e_vsi *vsi, u8 *macaddr)\n-{\n-\tint ret;\n-\tstruct i40e_aqc_add_macvlan_element_data element;\n-\n-\tret = i40e_aq_mac_address_write(&vsi->back->hw,\n-\t\t\t\t\tI40E_AQC_WRITE_TYPE_LAA_WOL,\n-\t\t\t\t\tmacaddr, NULL);\n-\tif (ret) {\n-\t\tdev_info(&vsi->back->pdev->dev,\n-\t\t\t \"Addr change for VSI failed: %d\\n\", ret);\n-\t\treturn -EADDRNOTAVAIL;\n-\t}\n-\n-\tmemset(&element, 0, sizeof(element));\n-\tether_addr_copy(element.mac_addr, macaddr);\n-\telement.flags = cpu_to_le16(I40E_AQC_MACVLAN_ADD_PERFECT_MATCH);\n-\tret = i40e_aq_add_macvlan(&vsi->back->hw, vsi->seid, &element, 1, NULL);\n-\tif (ret) {\n-\t\tdev_info(&vsi->back->pdev->dev,\n-\t\t\t \"add filter failed err %s aq_err %s\\n\",\n-\t\t\t i40e_stat_str(&vsi->back->hw, ret),\n-\t\t\t i40e_aq_str(&vsi->back->hw,\n-\t\t\t\t     vsi->back->hw.aq.asq_last_status));\n-\t}\n-\treturn ret;\n-}\n-\n-/**\n  * i40e_vsi_setup - Set up a VSI by a given type\n  * @pf: board private structure\n  * @type: VSI type\n",
    "prefixes": []
}