Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2200819/?format=api
{ "id": 2200819, "url": "http://patchwork.ozlabs.org/api/patches/2200819/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260225-igc-fix-xdp-tx-tstamp-pagefault-v2-1-bf797ec20f3b@siemens.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": "<20260225-igc-fix-xdp-tx-tstamp-pagefault-v2-1-bf797ec20f3b@siemens.com>", "list_archive_url": null, "date": "2026-02-25T09:58:29", "name": "[v2] igc: fix page fault in XDP TX timestamps handling", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "881d41bb15aece9c3878f3f0b1d3f11662c0e3b4", "submitter": { "id": 90149, "url": "http://patchwork.ozlabs.org/api/people/90149/?format=api", "name": "Zdenek Bouska", "email": "zdenek.bouska@siemens.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/20260225-igc-fix-xdp-tx-tstamp-pagefault-v2-1-bf797ec20f3b@siemens.com/mbox/", "series": [ { "id": 493353, "url": "http://patchwork.ozlabs.org/api/series/493353/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=493353", "date": "2026-02-25T09:58:29", "name": "[v2] igc: fix page fault in XDP TX timestamps handling", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/493353/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2200819/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2200819/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=vTrOHNZB;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\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 4fLVY71M4hz1xwy\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Feb 2026 21:03:55 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 8B45C60F89;\n\tWed, 25 Feb 2026 10:03:53 +0000 (UTC)", "from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id YPjbUy5CxWxp; Wed, 25 Feb 2026 10:03:51 +0000 (UTC)", "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 7F68860F83;\n\tWed, 25 Feb 2026 10:03:51 +0000 (UTC)", "from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n by lists1.osuosl.org (Postfix) with ESMTP id 9436023D\n for <intel-wired-lan@lists.osuosl.org>; Wed, 25 Feb 2026 10:03:49 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 855B3817D3\n for <intel-wired-lan@lists.osuosl.org>; Wed, 25 Feb 2026 10:03:49 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id YBB-UQx-VdDB for <intel-wired-lan@lists.osuosl.org>;\n Wed, 25 Feb 2026 10:03:48 +0000 (UTC)", "from mta-64-225.siemens.flowmailer.net\n (mta-64-225.siemens.flowmailer.net [185.136.64.225])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 8EB44817A9\n for <intel-wired-lan@lists.osuosl.org>; Wed, 25 Feb 2026 10:03:46 +0000 (UTC)", "by mta-64-225.siemens.flowmailer.net with ESMTPSA id\n 20260225095838b7b532bd6600020707\n for <intel-wired-lan@lists.osuosl.org>;\n Wed, 25 Feb 2026 10:58:39 +0100" ], "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 smtp3.osuosl.org 7F68860F83", "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 8EB44817A9" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1772013831;\n\tbh=vbj4RSQJDuRYZ5fTpF5eYkTEyvzPIP9uBuxY7VVzDmM=;\n\th=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive:\n\t List-Post:List-Help:List-Subscribe:From:Reply-To:From;\n\tb=vTrOHNZBwuAuIV+HHzWud7sMOrBCqRu4+8uNaZRsSLZIleWdehW9DaBYpGQZBRdLj\n\t 9fiLDLyExvnSi3ssmCnUdfqty7wxiCAszfJhUp+fEp+yybHb99uj14GAZ7oCrPaW04\n\t xsSkb4YiFhVl4dnt51jYRdtF2VcBi/RgBXjFTqgjEXToPAEGAJAEp7lmqAhQvJqV59\n\t vCxEFnPMPUNuTlL8JD24PL76gqgklImSXFWOZJxIhiK9JF6HDINjGq76y8fjB+oUHY\n\t YLB7K4R6vEgyDjc1Z1t5MiOGeQpXyVzdt7KOB7uk+eL5UMcFRN7TtZuL7L1vl+ppm9\n\t wqLECu2TYrDzg==", "X-Greylist": "delayed 304 seconds by postgrey-1.37 at util1.osuosl.org;\n Wed, 25 Feb 2026 10:03:46 UTC", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org 8EB44817A9", "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=185.136.64.225;\n helo=mta-64-225.siemens.flowmailer.net;\n envelope-from=fm-1328595-20260225095838b7b532bd6600020707-wpf3en@rts-flowmailer.siemens.com;\n receiver=<UNKNOWN>", "Date": "Wed, 25 Feb 2026 10:58:29 +0100", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "\n <20260225-igc-fix-xdp-tx-tstamp-pagefault-v2-1-bf797ec20f3b@siemens.com>", "X-B4-Tracking": "v=1; b=H4sIAMTHnmkC/4WNyw6CMBBFf4XM2jF05KGu/A/DopYBJhHatJVgC\n P9uJe5dnpubc1YI7IUDXLMVPM8SxE4J6JCBGfTUM0qbGCinKidFKL3BThZcWodxwRiiHh063XO\n nX8+IptCPlovydK4IksV5Tve9cG8SDxKi9e89OKvv+nNT8dc9K1RYm5ou3FWKubwF4ZGncDR2h\n Gbbtg9mcT600AAAAA==", "X-Change-ID": "20260212-igc-fix-xdp-tx-tstamp-pagefault-c4abde453862", "To": "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 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,\n Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>,\n Jesper Dangaard Brouer <hawk@kernel.org>,\n John Fastabend <john.fastabend@gmail.com>,\n Stanislav Fomichev <sdf@fomichev.me>,\n Richard Cochran <richardcochran@gmail.com>,\n Song Yoong Siang <yoong.siang.song@intel.com>,\n Lai Peter Jun Ann <jun.ann.lai@intel.com>", "Cc": "Vinicius Costa Gomes <vinicius.gomes@intel.com>,\n intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,\n linux-kernel@vger.kernel.org, bpf@vger.kernel.org,\n Florian Bezdeka <florian.bezdeka@siemens.com>,\n Zdenek Bouska <zdenek.bouska@siemens.com>", "X-Flowmailer-Platform": "Siemens", "Feedback-ID": "519:519-1328595:519-21489:flowmailer", "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt;\n c=relaxed/relaxed; s=fm2;\n d=siemens.com; i=zdenek.bouska@siemens.com;\n h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc;\n bh=vbj4RSQJDuRYZ5fTpF5eYkTEyvzPIP9uBuxY7VVzDmM=;\n b=POAQ8MaPlX4fuojo9+xfcFWxUf97NiISPsrBO2/DpPm093KQwl0AJglgbNtaQJzz0iIFp6\n AAfPsLjNAV/eE+cPiN9/yvtya0J9mNc6iJ5qioKDKLoiR5g7yarF7s1+VCCEo147aipwwrX+\n HcrlK5Qk4F9EkN6ApiPnnM4FY++3CqEznsh0cfOzSBHXah68oViZ3s45liPWlE572HgU5+yX\n 1CsbEiUgOOOWzfz3fLxb6sxQ+L9vFRqXJjhr3+fJQtDOrUTqUdlnML7rYV273MOF1eWSc2pR\n +PE0TVizaznqZI94VNSYZeneQ1VUIEGxhZCUhbsQnyZ7sPwoJZ+OIZUQ==;", "X-Mailman-Original-Authentication-Results": [ "smtp1.osuosl.org;\n dmarc=pass (p=reject dis=none)\n header.from=siemens.com", "smtp1.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=siemens.com header.i=zdenek.bouska@siemens.com\n header.a=rsa-sha256 header.s=fm2 header.b=POAQ8MaP" ], "Subject": "[Intel-wired-lan] [PATCH v2] igc: fix page fault in XDP TX\n timestamps handling", "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>", "From": "Zdenek Bouska via Intel-wired-lan <intel-wired-lan@osuosl.org>", "Reply-To": "Zdenek Bouska <zdenek.bouska@siemens.com>", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "If an XDP application that requested TX timestamping is shutting down\nwhile the link of the interface in use is still up the following kernel\nsplat is reported:\n\n[ 883.803618] [ T1554] BUG: unable to handle page fault for address: ffffcfb6200fd008\n...\n[ 883.803650] [ T1554] Call Trace:\n[ 883.803652] [ T1554] <TASK>\n[ 883.803654] [ T1554] igc_ptp_tx_tstamp_event+0xdf/0x160 [igc]\n[ 883.803660] [ T1554] igc_tsync_interrupt+0x2d5/0x300 [igc]\n...\n\nDuring shutdown of the TX ring the xsk_meta pointers are left behind, so\nthat the IRQ handler is trying to touch them.\n\nThis issue is now being fixed by cleaning up the stale xsk meta data on\nTX shutdown. TX timestamps on other queues remain unaffected.\n\nFixes: 15fd021bc427 (\"igc: Add Tx hardware timestamp request for AF_XDP zero-copy packet\")\nSigned-off-by: Zdenek Bouska <zdenek.bouska@siemens.com>\n---\nChanges in v2:\n- Moved 'adapter' variable declaration into the if block (Vinicius)\n- Link to v1: https://lore.kernel.org/r/20260224-igc-fix-xdp-tx-tstamp-pagefault-v1-1-7c729ef61ee5@siemens.com\n---\n drivers/net/ethernet/intel/igc/igc.h | 2 ++\n drivers/net/ethernet/intel/igc/igc_main.c | 7 +++++++\n drivers/net/ethernet/intel/igc/igc_ptp.c | 33 +++++++++++++++++++++++++++++++\n 3 files changed, 42 insertions(+)\n\n\n---\nbase-commit: 05f7e89ab9731565d8a62e3b5d1ec206485eeb0b\nchange-id: 20260212-igc-fix-xdp-tx-tstamp-pagefault-c4abde453862\n\nBest regards,", "diff": "diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h\nindex a427f05814c1ae7330c6f7034cd0f2b40b74dab6..17236813965d334f14eba928affbd4f91b96ecd4 100644\n--- a/drivers/net/ethernet/intel/igc/igc.h\n+++ b/drivers/net/ethernet/intel/igc/igc.h\n@@ -781,6 +781,8 @@ int igc_ptp_hwtstamp_set(struct net_device *netdev,\n \t\t\t struct kernel_hwtstamp_config *config,\n \t\t\t struct netlink_ext_ack *extack);\n void igc_ptp_tx_hang(struct igc_adapter *adapter);\n+void igc_ptp_clear_xsk_tx_tstamp_queue(struct igc_adapter *adapter,\n+\t\t\t\t u16 queue_id);\n void igc_ptp_read(struct igc_adapter *adapter, struct timespec64 *ts);\n void igc_ptp_tx_tstamp_event(struct igc_adapter *adapter);\n \ndiff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c\nindex 89a321a344d263ace5c66f7ade782b40cc482566..1931fcb659354d5009e0ea02316bf3a47b66b04d 100644\n--- a/drivers/net/ethernet/intel/igc/igc_main.c\n+++ b/drivers/net/ethernet/intel/igc/igc_main.c\n@@ -264,6 +264,13 @@ static void igc_clean_tx_ring(struct igc_ring *tx_ring)\n \t/* reset next_to_use and next_to_clean */\n \ttx_ring->next_to_use = 0;\n \ttx_ring->next_to_clean = 0;\n+\n+\t/* Clear any lingering XSK TX timestamp requests */\n+\tif (test_bit(IGC_RING_FLAG_TX_HWTSTAMP, &tx_ring->flags)) {\n+\t\tstruct igc_adapter *adapter = netdev_priv(tx_ring->netdev);\n+\n+\t\tigc_ptp_clear_xsk_tx_tstamp_queue(adapter, tx_ring->queue_index);\n+\t}\n }\n \n /**\ndiff --git a/drivers/net/ethernet/intel/igc/igc_ptp.c b/drivers/net/ethernet/intel/igc/igc_ptp.c\nindex 7aae83c108fd7611b00bf075592f93a902b83422..98491346d21b80925ce42ba276d851d4318e66b7 100644\n--- a/drivers/net/ethernet/intel/igc/igc_ptp.c\n+++ b/drivers/net/ethernet/intel/igc/igc_ptp.c\n@@ -576,6 +576,39 @@ static void igc_ptp_clear_tx_tstamp(struct igc_adapter *adapter)\n \tspin_unlock_irqrestore(&adapter->ptp_tx_lock, flags);\n }\n \n+/**\n+ * igc_ptp_clear_xsk_tx_tstamp_queue - Clear pending XSK TX timestamps for a queue\n+ * @adapter: Board private structure\n+ * @queue_id: TX queue index to clear timestamps for\n+ *\n+ * Iterates over all TX timestamp registers and releases any pending\n+ * timestamp requests associated with the given TX queue. This is\n+ * called when an XDP pool is being disabled to ensure no stale\n+ * timestamp references remain.\n+ */\n+void igc_ptp_clear_xsk_tx_tstamp_queue(struct igc_adapter *adapter, u16 queue_id)\n+{\n+\tunsigned long flags;\n+\tint i;\n+\n+\tspin_lock_irqsave(&adapter->ptp_tx_lock, flags);\n+\n+\tfor (i = 0; i < IGC_MAX_TX_TSTAMP_REGS; i++) {\n+\t\tstruct igc_tx_timestamp_request *tstamp = &adapter->tx_tstamp[i];\n+\n+\t\tif (tstamp->buffer_type != IGC_TX_BUFFER_TYPE_XSK)\n+\t\t\tcontinue;\n+\t\tif (tstamp->xsk_queue_index != queue_id)\n+\t\t\tcontinue;\n+\t\tif (!tstamp->xsk_tx_buffer)\n+\t\t\tcontinue;\n+\n+\t\tigc_ptp_free_tx_buffer(adapter, tstamp);\n+\t}\n+\n+\tspin_unlock_irqrestore(&adapter->ptp_tx_lock, flags);\n+}\n+\n static void igc_ptp_disable_tx_timestamp(struct igc_adapter *adapter)\n {\n \tstruct igc_hw *hw = &adapter->hw;\n", "prefixes": [ "v2" ] }