get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2213467,
    "url": "http://patchwork.ozlabs.org/api/patches/2213467/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260319211335.23236-2-emil.s.tantilov@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": "<20260319211335.23236-2-emil.s.tantilov@intel.com>",
    "list_archive_url": null,
    "date": "2026-03-19T21:13:33",
    "name": "[iwl-net,v2,1/3] idpf: fix PREEMPT_RT raw/bh spinlock nesting for async VC handling",
    "commit_ref": null,
    "pull_url": null,
    "state": "under-review",
    "archived": false,
    "hash": "9fd29d9a9167397763b58bff18fa86cb00ead7a6",
    "submitter": {
        "id": 1670,
        "url": "http://patchwork.ozlabs.org/api/people/1670/?format=api",
        "name": "Tantilov, Emil S",
        "email": "emil.s.tantilov@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/20260319211335.23236-2-emil.s.tantilov@intel.com/mbox/",
    "series": [
        {
            "id": 496716,
            "url": "http://patchwork.ozlabs.org/api/series/496716/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=496716",
            "date": "2026-03-19T21:13:34",
            "name": "idpf: virtchnl locking and async fixes",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/496716/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2213467/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2213467/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=s+Ncam0z;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=140.211.166.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 [140.211.166.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 4fcJNN3XkVz1xyt\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 20 Mar 2026 08:14:12 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 63A3D419EA;\n\tThu, 19 Mar 2026 21:14:10 +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 rfHYJBOl0PGp; Thu, 19 Mar 2026 21:14:09 +0000 (UTC)",
            "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id B0383419D6;\n\tThu, 19 Mar 2026 21:14:09 +0000 (UTC)",
            "from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n by lists1.osuosl.org (Postfix) with ESMTP id 6A536265\n for <intel-wired-lan@lists.osuosl.org>; Thu, 19 Mar 2026 21:14:08 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 3FA9084393\n for <intel-wired-lan@lists.osuosl.org>; Thu, 19 Mar 2026 21:14:06 +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 pIYAHmym9e12 for <intel-wired-lan@lists.osuosl.org>;\n Thu, 19 Mar 2026 21:14:04 +0000 (UTC)",
            "from mgamail.intel.com (mgamail.intel.com [198.175.65.13])\n by smtp1.osuosl.org (Postfix) with ESMTPS id B3EBB84422\n for <intel-wired-lan@lists.osuosl.org>; Thu, 19 Mar 2026 21:14:04 +0000 (UTC)",
            "from orviesa003.jf.intel.com ([10.64.159.143])\n by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Mar 2026 14:14:03 -0700",
            "from estantil-desk.jf.intel.com ([10.166.241.24])\n by orviesa003.jf.intel.com with ESMTP; 19 Mar 2026 14:14:02 -0700"
        ],
        "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 B0383419D6",
            "OpenDKIM Filter v2.11.0 smtp1.osuosl.org B3EBB84422"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1773954849;\n\tbh=lMESfybP3WlxeXQN+ZQdsqkpiXq6FgrleGBPKonrxeo=;\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=s+Ncam0z+yvfPJaFl/thLwFeykFXTaaY3BuhFaXW4dfxGb5n/CX6DSLmcs08zZOMl\n\t 7yZW5lbC1GI+4rKj1aFUvD69uP3w+vA4wpKOLWRXxilh65wGtdyHFfnObQAxeuwlVU\n\t EQlKF5bR9e1BH9h6l7ug9+Q2IXQfaqIHFkrmOCaxqMpZ6jTxQUT2DTiORbUS6B1WBV\n\t 0/AX2OQJ74WcFOQ/w9N1rU8M9BZJ4n5JM7xgCuXwkoHa6C3h+QWQNGean7KbFJ/AfY\n\t Kt9/HU2PXklw35JSXS9OlX5LF4ja3TE3czrRtBdpPbJAxn8yZ81MUcvVLEhyl+2Rhd\n\t rpIEO5TackXGw==",
        "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.13;\n helo=mgamail.intel.com; envelope-from=emil.s.tantilov@intel.com;\n receiver=<UNKNOWN>",
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org B3EBB84422",
        "X-CSE-ConnectionGUID": [
            "BZZh2IhzQYenFjvayPoKaw==",
            "Wxz5GlsfQkCc7Fz6/QQ1Vw=="
        ],
        "X-CSE-MsgGUID": [
            "FBIu2RLRRl+dAsuOQoclQg==",
            "axzZsgLrS6uLUFO4Jvthyw=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6800,10657,11734\"; a=\"86116372\"",
            "E=Sophos;i=\"6.23,130,1770624000\"; d=\"scan'208\";a=\"86116372\"",
            "E=Sophos;i=\"6.23,130,1770624000\"; d=\"scan'208\";a=\"227221172\""
        ],
        "X-ExtLoop1": "1",
        "From": "Emil Tantilov <emil.s.tantilov@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Cc": "netdev@vger.kernel.org, anthony.l.nguyen@intel.com,\n aleksandr.loktionov@intel.com, przemyslaw.kitszel@intel.com,\n andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,\n kuba@kernel.org, pabeni@redhat.com, bigeasy@linutronix.de,\n clrkwllms@kernel.org, rostedt@goodmis.org, linux-rt-devel@lists.linux.dev,\n sgzhang@google.com, boolli@google.com,\n Emil Tantilov <emil.s.tantilov@intel.com>, stable@vger.kernel.org",
        "Date": "Thu, 19 Mar 2026 14:13:33 -0700",
        "Message-Id": "<20260319211335.23236-2-emil.s.tantilov@intel.com>",
        "X-Mailer": "git-send-email 2.17.2",
        "In-Reply-To": "<20260319211335.23236-1-emil.s.tantilov@intel.com>",
        "References": "<20260319211335.23236-1-emil.s.tantilov@intel.com>",
        "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=1773954844; x=1805490844;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references;\n bh=mRP95+w+fhUk8Uwl9cU7Js17s7tnPpW9z6YR7cq7YPA=;\n b=j5eGdJb1VBwkurEalaggI2VXWwigVw6O0eiEt+zXIW28VZ0jxHz5RJmR\n zqMde55A8c9RA8k3UcJ+q11MB/yQWkdogqSXJ/LzK5HOs95Wp5AGECS0O\n j0szxsYNp7zELBdk9IJQXgaLznU5vb8y/e1k+2v33sanQMNHyZLuJmrWd\n +PTHxYgh8xyWQQBqSUZ9UD5BgR+VqTUPTqgZP05Owq7UZBkvO3aoegYG5\n 2bDs0ls5TPqEL9wHIKYXXgpAMVdwomX+fnQxOh3JlMqzEnEE3PMz6WBKX\n LYJgTdZFKLR8g6jfqGpVLbZsS/lZibUVJtmRGjSUgsOgGogXXWRDz3JPp\n Q==;",
        "X-Mailman-Original-Authentication-Results": [
            "smtp1.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com",
            "smtp1.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=j5eGdJb1"
        ],
        "Subject": "[Intel-wired-lan] [PATCH iwl-net v2 1/3] idpf: fix PREEMPT_RT\n raw/bh spinlock nesting for async VC 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>",
        "Errors-To": "intel-wired-lan-bounces@osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"
    },
    "content": "Switch from using the completion's raw spinlock to a local lock in the\nidpf_vc_xn struct. The conversion is safe because complete/_all() are\ncalled outside the lock and there is no reason to share the completion\nlock in the current logic. This avoids invalid wait context reported by\nthe kernel due to the async handler taking BH spinlock:\n\n[  805.726977] =============================\n[  805.726991] [ BUG: Invalid wait context ]\n[  805.727006] 7.0.0-rc2-net-devq-031026+ #28 Tainted: G S         OE\n[  805.727026] -----------------------------\n[  805.727038] kworker/u261:0/572 is trying to lock:\n[  805.727051] ff190da6a8dbb6a0 (&vport_config->mac_filter_list_lock){+...}-{3:3}, at: idpf_mac_filter_async_handler+0xe9/0x260 [idpf]\n[  805.727099] other info that might help us debug this:\n[  805.727111] context-{5:5}\n[  805.727119] 3 locks held by kworker/u261:0/572:\n[  805.727132]  #0: ff190da6db3e6148 ((wq_completion)idpf-0000:83:00.0-mbx){+.+.}-{0:0}, at: process_one_work+0x4b5/0x730\n[  805.727163]  #1: ff3c6f0a6131fe50 ((work_completion)(&(&adapter->mbx_task)->work)){+.+.}-{0:0}, at: process_one_work+0x1e5/0x730\n[  805.727191]  #2: ff190da765190020 (&x->wait#34){+.+.}-{2:2}, at: idpf_recv_mb_msg+0xc8/0x710 [idpf]\n[  805.727218] stack backtrace:\n...\n[  805.727238] Workqueue: idpf-0000:83:00.0-mbx idpf_mbx_task [idpf]\n[  805.727247] Call Trace:\n[  805.727249]  <TASK>\n[  805.727251]  dump_stack_lvl+0x77/0xb0\n[  805.727259]  __lock_acquire+0xb3b/0x2290\n[  805.727268]  ? __irq_work_queue_local+0x59/0x130\n[  805.727275]  lock_acquire+0xc6/0x2f0\n[  805.727277]  ? idpf_mac_filter_async_handler+0xe9/0x260 [idpf]\n[  805.727284]  ? _printk+0x5b/0x80\n[  805.727290]  _raw_spin_lock_bh+0x38/0x50\n[  805.727298]  ? idpf_mac_filter_async_handler+0xe9/0x260 [idpf]\n[  805.727303]  idpf_mac_filter_async_handler+0xe9/0x260 [idpf]\n[  805.727310]  idpf_recv_mb_msg+0x1c8/0x710 [idpf]\n[  805.727317]  process_one_work+0x226/0x730\n[  805.727322]  worker_thread+0x19e/0x340\n[  805.727325]  ? __pfx_worker_thread+0x10/0x10\n[  805.727328]  kthread+0xf4/0x130\n[  805.727333]  ? __pfx_kthread+0x10/0x10\n[  805.727336]  ret_from_fork+0x32c/0x410\n[  805.727345]  ? __pfx_kthread+0x10/0x10\n[  805.727347]  ret_from_fork_asm+0x1a/0x30\n[  805.727354]  </TASK>\n\nFixes: 34c21fa894a1 (\"idpf: implement virtchnl transaction manager\")\nCc: stable@vger.kernel.org\nSuggested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>\nReported-by: Ray Zhang <sgzhang@google.com>\nSigned-off-by: Emil Tantilov <emil.s.tantilov@intel.com>\n---\n drivers/net/ethernet/intel/idpf/idpf_virtchnl.c | 14 +++++---------\n drivers/net/ethernet/intel/idpf/idpf_virtchnl.h |  5 +++--\n 2 files changed, 8 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c\nindex 113ecfc16dd7..582e0c8e9dc0 100644\n--- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c\n+++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c\n@@ -287,26 +287,21 @@ int idpf_send_mb_msg(struct idpf_adapter *adapter, struct idpf_ctlq_info *asq,\n \treturn err;\n }\n \n-/* API for virtchnl \"transaction\" support (\"xn\" for short).\n- *\n- * We are reusing the completion lock to serialize the accesses to the\n- * transaction state for simplicity, but it could be its own separate synchro\n- * as well. For now, this API is only used from within a workqueue context;\n- * raw_spin_lock() is enough.\n- */\n+/* API for virtchnl \"transaction\" support (\"xn\" for short). */\n+\n /**\n  * idpf_vc_xn_lock - Request exclusive access to vc transaction\n  * @xn: struct idpf_vc_xn* to access\n  */\n #define idpf_vc_xn_lock(xn)\t\t\t\\\n-\traw_spin_lock(&(xn)->completed.wait.lock)\n+\tspin_lock(&(xn)->lock)\n \n /**\n  * idpf_vc_xn_unlock - Release exclusive access to vc transaction\n  * @xn: struct idpf_vc_xn* to access\n  */\n #define idpf_vc_xn_unlock(xn)\t\t\\\n-\traw_spin_unlock(&(xn)->completed.wait.lock)\n+\tspin_unlock(&(xn)->lock)\n \n /**\n  * idpf_vc_xn_release_bufs - Release reference to reply buffer(s) and\n@@ -338,6 +333,7 @@ static void idpf_vc_xn_init(struct idpf_vc_xn_manager *vcxn_mngr)\n \t\txn->state = IDPF_VC_XN_IDLE;\n \t\txn->idx = i;\n \t\tidpf_vc_xn_release_bufs(xn);\n+\t\tspin_lock_init(&xn->lock);\n \t\tinit_completion(&xn->completed);\n \t}\n \ndiff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.h b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.h\nindex fe065911ad5a..6876e3ed9d1b 100644\n--- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.h\n+++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.h\n@@ -42,8 +42,8 @@ typedef int (*async_vc_cb) (struct idpf_adapter *, struct idpf_vc_xn *,\n  * struct idpf_vc_xn - Data structure representing virtchnl transactions\n  * @completed: virtchnl event loop uses that to signal when a reply is\n  *\t       available, uses kernel completion API\n- * @state: virtchnl event loop stores the data below, protected by the\n- *\t   completion's lock.\n+ * @lock: protects the transaction state fields below\n+ * @state: virtchnl event loop stores the data below, protected by @lock\n  * @reply_sz: Original size of reply, may be > reply_buf.iov_len; it will be\n  *\t      truncated on its way to the receiver thread according to\n  *\t      reply_buf.iov_len.\n@@ -58,6 +58,7 @@ typedef int (*async_vc_cb) (struct idpf_adapter *, struct idpf_vc_xn *,\n  */\n struct idpf_vc_xn {\n \tstruct completion completed;\n+\tspinlock_t lock;\n \tenum idpf_vc_xn_state state;\n \tsize_t reply_sz;\n \tstruct kvec reply;\n",
    "prefixes": [
        "iwl-net",
        "v2",
        "1/3"
    ]
}