get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 631865,
    "url": "http://patchwork.ozlabs.org/api/patches/631865/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20160607230902.5457-11-jacob.e.keller@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": "<20160607230902.5457-11-jacob.e.keller@intel.com>",
    "list_archive_url": null,
    "date": "2016-06-07T23:08:54",
    "name": "[v2,10/18] fm10k: use common reset flow when handling io errors from PCI stack",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "4b1eb3d7443ee2f0d4d011f913f30955d4325809",
    "submitter": {
        "id": 9784,
        "url": "http://patchwork.ozlabs.org/api/people/9784/?format=api",
        "name": "Jacob Keller",
        "email": "jacob.e.keller@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/20160607230902.5457-11-jacob.e.keller@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/631865/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/631865/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 whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\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 3rPS246RsNz9ssP\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  8 Jun 2016 09:09:32 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 78FC88A801;\n\tTue,  7 Jun 2016 23:09:31 +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 M39uFa2wzQF4; Tue,  7 Jun 2016 23:09:28 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id EEA298A93F;\n\tTue,  7 Jun 2016 23:09:17 +0000 (UTC)",
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id AD78F1C127A\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue,  7 Jun 2016 23:09:13 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id A9C3D88195\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue,  7 Jun 2016 23:09:13 +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 JFkX53S-go7E for <intel-wired-lan@lists.osuosl.org>;\n\tTue,  7 Jun 2016 23:09:06 +0000 (UTC)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 5CD6288142\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue,  7 Jun 2016 23:09:06 +0000 (UTC)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga104.fm.intel.com with ESMTP; 07 Jun 2016 16:09:05 -0700",
            "from jekeller-desk.amr.corp.intel.com (HELO\n\tjekeller-desk.jekeller.internal) ([134.134.3.116])\n\tby FMSMGA003.fm.intel.com with ESMTP; 07 Jun 2016 16:09:06 -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-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.26,436,1459839600\"; d=\"scan'208\";a=\"715507171\"",
        "From": "Jacob Keller <jacob.e.keller@intel.com>",
        "To": "Intel Wired LAN <intel-wired-lan@lists.osuosl.org>",
        "Date": "Tue,  7 Jun 2016 16:08:54 -0700",
        "Message-Id": "<20160607230902.5457-11-jacob.e.keller@intel.com>",
        "X-Mailer": "git-send-email 2.9.0.rc1.405.g81f467e",
        "In-Reply-To": "<20160607230902.5457-1-jacob.e.keller@intel.com>",
        "References": "<20160607230902.5457-1-jacob.e.keller@intel.com>",
        "Subject": "[Intel-wired-lan] [PATCH v2 10/18] fm10k: use common reset flow\n\twhen handling io errors from PCI stack",
        "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": "Now that we have extracted the necessary steps for a split\nsuspend/resume flow, re-use these functions instead of using the current\nopen coded flow. This ensures that we don't miss any steps. It also\nensures that we have the correct driver states set.\n\nSince we'll be handling all of the reset flow ourselves, we no longer\nneed to request a reset in the io_slot_reset() function.\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\n---\n drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 60 ++++------------------------\n 1 file changed, 7 insertions(+), 53 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\nindex a6ee046e9824..716a5c852143 100644\n--- a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\n+++ b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\n@@ -2312,17 +2312,7 @@ static pci_ers_result_t fm10k_io_error_detected(struct pci_dev *pdev,\n \tif (state == pci_channel_io_perm_failure)\n \t\treturn PCI_ERS_RESULT_DISCONNECT;\n \n-\trtnl_lock();\n-\n-\tif (netif_running(netdev))\n-\t\tfm10k_close(netdev);\n-\n-\tfm10k_mbx_free_irq(interface);\n-\n-\t/* free interrupts */\n-\tfm10k_clear_queueing_scheme(interface);\n-\n-\trtnl_unlock();\n+\tfm10k_prepare_suspend(interface);\n \n \t/* Request a slot reset. */\n \treturn PCI_ERS_RESULT_NEED_RESET;\n@@ -2336,7 +2326,6 @@ static pci_ers_result_t fm10k_io_error_detected(struct pci_dev *pdev,\n  */\n static pci_ers_result_t fm10k_io_slot_reset(struct pci_dev *pdev)\n {\n-\tstruct fm10k_intfc *interface = pci_get_drvdata(pdev);\n \tpci_ers_result_t result;\n \n \tif (pci_enable_device_mem(pdev)) {\n@@ -2354,12 +2343,6 @@ static pci_ers_result_t fm10k_io_slot_reset(struct pci_dev *pdev)\n \n \t\tpci_wake_from_d3(pdev, false);\n \n-\t\t/* refresh hw_addr in case it was dropped */\n-\t\tinterface->hw.hw_addr = interface->uc_addr;\n-\n-\t\tinterface->flags |= FM10K_FLAG_RESET_REQUESTED;\n-\t\tfm10k_service_event_schedule(interface);\n-\n \t\tresult = PCI_ERS_RESULT_RECOVERED;\n \t}\n \n@@ -2379,44 +2362,15 @@ static void fm10k_io_resume(struct pci_dev *pdev)\n {\n \tstruct fm10k_intfc *interface = pci_get_drvdata(pdev);\n \tstruct net_device *netdev = interface->netdev;\n-\tstruct fm10k_hw *hw = &interface->hw;\n-\tint err = 0;\n+\tint err;\n \n-\t/* reset hardware to known state */\n-\terr = hw->mac.ops.init_hw(&interface->hw);\n-\tif (err) {\n-\t\tdev_err(&pdev->dev, \"init_hw failed: %d\\n\", err);\n-\t\treturn;\n-\t}\n+\terr = fm10k_handle_resume(interface);\n \n-\t/* reset statistics starting values */\n-\thw->mac.ops.rebind_hw_stats(hw, &interface->stats);\n-\n-\trtnl_lock();\n-\n-\terr = fm10k_init_queueing_scheme(interface);\n-\tif (err) {\n-\t\tdev_err(&interface->pdev->dev,\n-\t\t\t\"init_queueing_scheme failed: %d\\n\", err);\n-\t\tgoto unlock;\n-\t}\n-\n-\t/* reassociate interrupts */\n-\tfm10k_mbx_request_irq(interface);\n-\n-\trtnl_lock();\n-\tif (netif_running(netdev))\n-\t\terr = fm10k_open(netdev);\n-\trtnl_unlock();\n-\n-\t/* final check of hardware state before registering the interface */\n-\terr = err ? : fm10k_hw_ready(interface);\n-\n-\tif (!err)\n+\tif (err)\n+\t\tdev_warn(&pdev->dev,\n+\t\t\t \"fm10k_io_resume failed: %d\\n\", err);\n+\telse\n \t\tnetif_device_attach(netdev);\n-\n-unlock:\n-\trtnl_unlock();\n }\n \n static const struct pci_error_handlers fm10k_err_handler = {\n",
    "prefixes": [
        "v2",
        "10/18"
    ]
}