Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/484605/?format=api
{ "id": 484605, "url": "http://patchwork.ozlabs.org/api/patches/484605/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1434405656-10465-1-git-send-email-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": "<1434405656-10465-1-git-send-email-jacob.e.keller@intel.com>", "list_archive_url": null, "date": "2015-06-15T22:00:51", "name": "[1/6] fm10k: disable service task during suspend", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "e0bc6d82e0fbfe83ae00cd9f0ab30a2dc9aed43f", "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/1434405656-10465-1-git-send-email-jacob.e.keller@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/484605/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/484605/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\tby ozlabs.org (Postfix) with ESMTP id 1B3451402AB\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 16 Jun 2015 08:01:09 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 63F95A407F;\n\tMon, 15 Jun 2015 22:01:08 +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 QcZProxTLAoP; Mon, 15 Jun 2015 22:01:06 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id DC094A3F0E;\n\tMon, 15 Jun 2015 22:01:06 +0000 (UTC)", "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id 21E101C0E70\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 15 Jun 2015 22:01:06 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 1DF59953B0\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 15 Jun 2015 22:01:06 +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 b2wtX+kUpFat for <intel-wired-lan@lists.osuosl.org>;\n\tMon, 15 Jun 2015 22:01:04 +0000 (UTC)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id F3AFB951DE\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 15 Jun 2015 22:01:03 +0000 (UTC)", "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga103.fm.intel.com with ESMTP; 15 Jun 2015 15:01:01 -0700", "from jekeller-desk.amr.corp.intel.com ([134.134.3.85])\n\tby FMSMGA003.fm.intel.com with ESMTP; 15 Jun 2015 15:01:01 -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.13,621,1427785200\"; d=\"scan'208\";a=\"508766531\"", "From": "Jacob Keller <jacob.e.keller@intel.com>", "To": "Intel Wired LAN <intel-wired-lan@lists.osuosl.org>", "Date": "Mon, 15 Jun 2015 15:00:51 -0700", "Message-Id": "<1434405656-10465-1-git-send-email-jacob.e.keller@intel.com>", "X-Mailer": "git-send-email 2.4.2", "Subject": "[Intel-wired-lan] [PATCH 1/6] fm10k: disable service task during\n\tsuspend", "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": "The service task reads some registers as part of its normal routine,\neven while the interface is down. Normally this is ok. However, during\nsuspend we have disabled the PCI device. Due to this, registers will\nread in the same way as a surprise-remove event. Disable the service\ntask while we suspend, and re-enable it after we resume. If we don't do\nthis, the device could be UP when you suspend and come back from resume\nas closed (since fm10k closes the device when it gets a surprise\nremove).\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\n---\n drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 19 +++++++++++++++++++\n 1 file changed, 19 insertions(+)", "diff": "diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\nindex 0381c8d192aa..c7ffb2635f92 100644\n--- a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\n+++ b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\n@@ -1983,6 +1983,16 @@ static int fm10k_resume(struct pci_dev *pdev)\n \tif (err)\n \t\treturn err;\n \n+\t/* assume host is not ready, to prevent race with watchdog incase we\n+\t * actually don't have connection to the switch\n+\t */\n+\tinterface->host_ready = false;\n+\tfm10k_watchdog_host_not_ready(interface);\n+\n+\t/* clear the service task disable bit to allow service task to start */\n+\tclear_bit(__FM10K_SERVICE_DISABLE, &interface->state);\n+\tfm10k_service_event_schedule(interface);\n+\n \t/* restore SR-IOV interface */\n \tfm10k_iov_resume(pdev);\n \n@@ -2010,6 +2020,15 @@ static int fm10k_suspend(struct pci_dev *pdev,\n \n \tfm10k_iov_suspend(pdev);\n \n+\t/* the watchdog tasks may read registers, which will appear like a\n+\t * surprise-remove event once the PCI device is disabled. This will\n+\t * cause us to close the netdevice, so we don't retain the open/closed\n+\t * state post-resume. Prevent this by disabling the service task while\n+\t * suspended, until we actually resume.\n+\t */\n+\tset_bit(__FM10K_SERVICE_DISABLE, &interface->state);\n+\tcancel_work_sync(&interface->service_task);\n+\n \trtnl_lock();\n \n \tif (netif_running(netdev))\n", "prefixes": [ "1/6" ] }