Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2200194/?format=api
{ "id": 2200194, "url": "http://patchwork.ozlabs.org/api/patches/2200194/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260224111044.3487873-4-mika.westerberg@linux.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": "<20260224111044.3487873-4-mika.westerberg@linux.intel.com>", "list_archive_url": null, "date": "2026-02-24T11:10:42", "name": "[3/5] igc: Don't reset the hardware on suspend path", "commit_ref": null, "pull_url": null, "state": "under-review", "archived": false, "hash": "ac3d2fdf7715e4bba94fb035f9080c593786b98c", "submitter": { "id": 14534, "url": "http://patchwork.ozlabs.org/api/people/14534/?format=api", "name": "Mika Westerberg", "email": "mika.westerberg@linux.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/20260224111044.3487873-4-mika.westerberg@linux.intel.com/mbox/", "series": [ { "id": 493142, "url": "http://patchwork.ozlabs.org/api/series/493142/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=493142", "date": "2026-02-24T11:10:41", "name": "PCI / igc: Improvements related to PTM enabling", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/493142/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2200194/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2200194/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=MidMqdUD;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\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 4fKw533G7rz1xyB\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 24 Feb 2026 22:11:03 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id CFE7941C0C;\n\tTue, 24 Feb 2026 11:10:56 +0000 (UTC)", "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id xEN_bLJVFkXT; Tue, 24 Feb 2026 11:10:56 +0000 (UTC)", "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 119AD41BED;\n\tTue, 24 Feb 2026 11:10:56 +0000 (UTC)", "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id 0575D237\n for <intel-wired-lan@lists.osuosl.org>; Tue, 24 Feb 2026 11:10:55 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id B225041BED\n for <intel-wired-lan@lists.osuosl.org>; Tue, 24 Feb 2026 11:10:52 +0000 (UTC)", "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 4K8Q3p_TfsbB for <intel-wired-lan@lists.osuosl.org>;\n Tue, 24 Feb 2026 11:10:52 +0000 (UTC)", "from mgamail.intel.com (mgamail.intel.com [192.198.163.7])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 1152F41BF3\n for <intel-wired-lan@lists.osuosl.org>; Tue, 24 Feb 2026 11:10:52 +0000 (UTC)", "from orviesa008.jf.intel.com ([10.64.159.148])\n by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 24 Feb 2026 03:10:50 -0800", "from black.igk.intel.com ([10.91.253.5])\n by orviesa008.jf.intel.com with ESMTP; 24 Feb 2026 03:10:45 -0800", "by black.igk.intel.com (Postfix, from userid 1001)\n id 220E69D; Tue, 24 Feb 2026 12:10:44 +0100 (CET)" ], "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 smtp4.osuosl.org 119AD41BED", "OpenDKIM Filter v2.11.0 smtp4.osuosl.org 1152F41BF3" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1771931456;\n\tbh=bTfKP/5IARJExguxQh9Y+wJipUWgM/G5DIZmN+mUT5U=;\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=MidMqdUDL1Y5tsftuyKffkzJ6L1ETRy9gl+H1aZxKOvEkCHMVtxFAd3QpcCojjZJb\n\t tT4zL9vkszOFclGzoKsuV9SwgynD/cbIdVbUwQNJk0djvjJ3bIAUrAyg7kGcnwZuPZ\n\t hvsokQ8MOtvCpFFMXqFQqBphQH+Fg0zqt1oY+HxMQlvfrT4ErwayGuC9KJmy7dmVEM\n\t KFGBfPb7myaRYVAAZDZJZYjpInKlH6of5ehtV+ATbTUd6qPyBZaosLTMq3a5zjNj1r\n\t mB5hMw0XwuJ1EOpZ3SefBBiZGMa2JWvFdFV7cfJpe+maYG3JwatwX2rHGoDAzgGg4w\n\t 0lN0+ueBpFzgg==", "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.7;\n helo=mgamail.intel.com; envelope-from=mika.westerberg@linux.intel.com;\n receiver=<UNKNOWN>", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp4.osuosl.org 1152F41BF3", "X-CSE-ConnectionGUID": [ "oWiunOGXRjCZkP+vmQ2aUA==", "vLSKuYS3SjSjDD4qLWSjqQ==" ], "X-CSE-MsgGUID": [ "sCuDFG/mSyKHEBjUYS4s9g==", "WTJXnrQmSyu+OemXyCYZ6A==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6800,10657,11710\"; a=\"98405008\"", "E=Sophos;i=\"6.21,308,1763452800\"; d=\"scan'208\";a=\"98405008\"", "E=Sophos;i=\"6.21,308,1763452800\"; d=\"scan'208\";a=\"215892055\"" ], "X-ExtLoop1": "1", "From": "Mika Westerberg <mika.westerberg@linux.intel.com>", "To": "linux-pci@vger.kernel.org", "Cc": "intel-wired-lan@lists.osuosl.org, Bjorn Helgaas <bhelgaas@google.com>,\n Lukas Wunner <lukas@wunner.de>, Tony Nguyen <anthony.l.nguyen@intel.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>,\n \"David S . Miller\" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,\n Paolo Abeni <pabeni@redhat.com>, Saeed Mahameed <saeedm@nvidia.com>,\n Leon Romanovsky <leon@kernel.org>, Tariq Toukan <tariqt@nvidia.com>,\n Mark Bloch <mbloch@nvidia.com>, Richard Cochran <richardcochran@gmail.com>,\n Andy Shevchenko <andriy.shevchenko@intel.com>,\n Vitaly Lifshits <vitaly.lifshits@intel.com>,\n =?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>,\n Vinicius Costa Gomes <vinicius.gomes@intel.com>,\n Dima Ruinskiy <dima.ruinskiy@intel.com>,\n Mika Westerberg <mika.westerberg@linux.intel.com>", "Date": "Tue, 24 Feb 2026 12:10:42 +0100", "Message-ID": "<20260224111044.3487873-4-mika.westerberg@linux.intel.com>", "X-Mailer": "git-send-email 2.50.1", "In-Reply-To": "<20260224111044.3487873-1-mika.westerberg@linux.intel.com>", "References": "<20260224111044.3487873-1-mika.westerberg@linux.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=1771931452; x=1803467452;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=56yevZUMPDZILbEoozNRhpdvOE4yXm35dKj3iYbqF3E=;\n b=YmIcji9HizgAIqvDgqkppEqYuG8iSvOK+DpAY0xxmo3GF5mVeaDi7cf4\n GRPRfKx5o0WDIqIldOQtXboSFMYOcYFkAeJjWxtF0tgyEnKws/FCAQsWt\n doGRc7LS71n84OBhxysO/bi56i1sOL7+uLnB3cQjaC3+YSvy5Pesaf2b8\n nJlSNoGDifG1WL9L9nUDEnV6t8NYfrpSFJll1l47Ox390OK+A21bceS2a\n m8ToMuHxsDAMWB1NQOYTnhS6nN8M8RN4sEQn8rP8Nod0l74nhbQbCZLj7\n YdSenDxpYBtOzuy7G+Yim5B+4x+vCwpr3OkrVhfaSf5OOBShUBwtwMN4W\n Q==;", "X-Mailman-Original-Authentication-Results": [ "smtp4.osuosl.org;\n dmarc=none (p=none dis=none)\n header.from=linux.intel.com", "smtp4.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=YmIcji9H" ], "Subject": "[Intel-wired-lan] [PATCH 3/5] igc: Don't reset the hardware on\n suspend path", "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": "Commit c01163dbd1b8 (\"PCI/PM: Always disable PTM for all devices during\nsuspend\") made the PCI core to suspend (disable) PTM before driver\nsuspend hooks are called. In case of igc what happens is that on suspend\npath PCI core calls pci_suspend_ptm() then igc suspend hook that calls\nigc_down() that ends up calling igc_ptp_reset() (which according to the\ncomment is actually needed for re-enabling the device). Anyways that\nfunction also poll IGC_PTM_STAT that will end up timing out because PTM\nis already disabled:\n\n [ 160.716119] igc 0000:03:00.0 enp3s0: Timeout reading IGC_PTM_STAT register\n\nThere should be no reason resetting the hardware on suspend path so fix\nthis by avoiding the reset.\n\nSigned-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>\n---\n drivers/net/ethernet/intel/igc/igc.h | 2 +-\n drivers/net/ethernet/intel/igc/igc_ethtool.c | 6 +++---\n drivers/net/ethernet/intel/igc/igc_main.c | 13 +++++++------\n 3 files changed, 11 insertions(+), 10 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h\nindex a427f05814c1..21d6eba1cc09 100644\n--- a/drivers/net/ethernet/intel/igc/igc.h\n+++ b/drivers/net/ethernet/intel/igc/igc.h\n@@ -349,7 +349,7 @@ struct igc_adapter {\n };\n \n void igc_up(struct igc_adapter *adapter);\n-void igc_down(struct igc_adapter *adapter);\n+void igc_down(struct igc_adapter *adapter, bool reset);\n int igc_open(struct net_device *netdev);\n int igc_close(struct net_device *netdev);\n int igc_setup_tx_resources(struct igc_ring *ring);\ndiff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c\nindex 0122009bedd0..4d1bcc19255f 100644\n--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c\n+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c\n@@ -638,7 +638,7 @@ igc_ethtool_set_ringparam(struct net_device *netdev,\n \t\tgoto clear_reset;\n \t}\n \n-\tigc_down(adapter);\n+\tigc_down(adapter, true);\n \n \t/* We can't just free everything and then setup again,\n \t * because the ISRs in MSI-X mode get passed pointers\n@@ -737,7 +737,7 @@ static int igc_ethtool_set_pauseparam(struct net_device *netdev,\n \tif (adapter->fc_autoneg == AUTONEG_ENABLE) {\n \t\thw->fc.requested_mode = igc_fc_default;\n \t\tif (netif_running(adapter->netdev)) {\n-\t\t\tigc_down(adapter);\n+\t\t\tigc_down(adapter, true);\n \t\t\tigc_up(adapter);\n \t\t} else {\n \t\t\tigc_reset(adapter);\n@@ -2077,7 +2077,7 @@ igc_ethtool_set_link_ksettings(struct net_device *netdev,\n \n \t/* reset the link */\n \tif (netif_running(adapter->netdev)) {\n-\t\tigc_down(adapter);\n+\t\tigc_down(adapter, true);\n \t\tigc_up(adapter);\n \t} else {\n \t\tigc_reset(adapter);\ndiff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c\nindex 99a4c99ddd57..84f5d92c81cc 100644\n--- a/drivers/net/ethernet/intel/igc/igc_main.c\n+++ b/drivers/net/ethernet/intel/igc/igc_main.c\n@@ -5308,8 +5308,9 @@ void igc_update_stats(struct igc_adapter *adapter)\n /**\n * igc_down - Close the interface\n * @adapter: board private structure\n+ * @reset: issue reset\n */\n-void igc_down(struct igc_adapter *adapter)\n+void igc_down(struct igc_adapter *adapter, bool reset)\n {\n \tstruct net_device *netdev = adapter->netdev;\n \tstruct igc_hw *hw = &adapter->hw;\n@@ -5365,7 +5366,7 @@ void igc_down(struct igc_adapter *adapter)\n \tadapter->link_speed = 0;\n \tadapter->link_duplex = 0;\n \n-\tif (!pci_channel_offline(adapter->pdev))\n+\tif (reset && !pci_channel_offline(adapter->pdev))\n \t\tigc_reset(adapter);\n \n \t/* clear VLAN promisc flag so VFTA will be updated if necessary */\n@@ -5383,7 +5384,7 @@ void igc_reinit_locked(struct igc_adapter *adapter)\n {\n \twhile (test_and_set_bit(__IGC_RESETTING, &adapter->state))\n \t\tusleep_range(1000, 2000);\n-\tigc_down(adapter);\n+\tigc_down(adapter, true);\n \tigc_up(adapter);\n \tclear_bit(__IGC_RESETTING, &adapter->state);\n }\n@@ -5437,7 +5438,7 @@ static int igc_change_mtu(struct net_device *netdev, int new_mtu)\n \tadapter->max_frame_size = max_frame;\n \n \tif (netif_running(netdev))\n-\t\tigc_down(adapter);\n+\t\tigc_down(adapter, true);\n \n \tnetdev_dbg(netdev, \"changing MTU from %d to %d\\n\", netdev->mtu, new_mtu);\n \tWRITE_ONCE(netdev->mtu, new_mtu);\n@@ -6301,7 +6302,7 @@ static int __igc_close(struct net_device *netdev, bool suspending)\n \tif (!suspending)\n \t\tpm_runtime_get_sync(&pdev->dev);\n \n-\tigc_down(adapter);\n+\tigc_down(adapter, !suspending);\n \n \tigc_release_hw_control(adapter);\n \n@@ -7628,7 +7629,7 @@ static pci_ers_result_t igc_io_error_detected(struct pci_dev *pdev,\n \t}\n \n \tif (netif_running(netdev))\n-\t\tigc_down(adapter);\n+\t\tigc_down(adapter, true);\n \tpci_disable_device(pdev);\n \trtnl_unlock();\n \n", "prefixes": [ "3/5" ] }