Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2230523/?format=api
{ "id": 2230523, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2230523/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260429135717.3048713-3-joshualant@gmail.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/1.1/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260429135717.3048713-3-joshualant@gmail.com>", "date": "2026-04-29T13:48:36", "name": "[RFC,QEMU,02/10] qdev/qbus: Allow hidden devices to be busless on QEMU startup", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "0443059bd897a2c0c9c49383652c36e8d90ebf9a", "submitter": { "id": 93283, "url": "http://patchwork.ozlabs.org/api/1.1/people/93283/?format=api", "name": "Joshua Lant", "email": "joshualant@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260429135717.3048713-3-joshualant@gmail.com/mbox/", "series": [ { "id": 502144, "url": "http://patchwork.ozlabs.org/api/1.1/series/502144/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=502144", "date": "2026-04-29T13:48:40", "name": "Initial Support for VCS Switching", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502144/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2230523/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2230523/checks/", "tags": {}, "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=AjgfJkzQ;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5Swt5YGkz1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 06:06:06 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wIB7t-0003V0-PN; Wed, 29 Apr 2026 16:03:17 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <joshualant@gmail.com>)\n id 1wI5QR-00087h-8u\n for qemu-devel@nongnu.org; Wed, 29 Apr 2026 09:58:03 -0400", "from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <joshualant@gmail.com>)\n id 1wI5QN-0007gs-VQ\n for qemu-devel@nongnu.org; Wed, 29 Apr 2026 09:58:02 -0400", "by mail-wr1-x42d.google.com with SMTP id\n ffacd0b85a97d-43cfd1f9fd1so7861526f8f.3\n for <qemu-devel@nongnu.org>; Wed, 29 Apr 2026 06:57:59 -0700 (PDT)", "from node1.manccluster.local (revolution.cs.man.ac.uk.\n [130.88.198.135]) by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-447b3d48517sm5205950f8f.5.2026.04.29.06.57.55\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 29 Apr 2026 06:57:56 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1777471078; x=1778075878; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=i55Tulez84uC6S30BzMAZAX+g+KufDCaRfey8FY/Ij4=;\n b=AjgfJkzQuv9875UMnxr7oiePC2iOaA3LUlWzD5QQfhtMPtxPewMd96Tnv6kjc+6stn\n ougsQUUQ9ZoulwOOlUtgBdrm0R1qlDyQUGdqu3XLnXghjA4eJaa8BOIKK3KxHIldbCsF\n QCaMQLUYZFUZN5euRl8trySjS6bUow4DUZjHz5x2eekKSYbKwzyzI61RX3Nz7utRC8in\n I2qSeJG2MqOtTfcL+aOfXwt6DBHEOAt+P4Hulsu7N3VdpcEHQGGCJjwiW3wMTAbmqiPO\n iNGXCltdHLdijCSMSGzmBnmtOnWbdK0UabSwW3++wHhOVEK5JhQpH1jtag0NbfKhOVGD\n RzSQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777471078; x=1778075878;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=i55Tulez84uC6S30BzMAZAX+g+KufDCaRfey8FY/Ij4=;\n b=qFguAHw5vKgjxIPOPf1VTsKlvdGVxPdh47voKQoBmneCbIoutvQacIxYqfNxl3a7gv\n 3KBsnyK7xUDbblbMeg6/KtbASOp8Jf6HUJZhEwyiJ6/OSsb7EC9rEW2ZzQT+52jM0T+a\n XwzaIZeMg5nOwIQWDd0JwElPv3+h6w1TAk1uPK9lahP2ku4B5DkFmzOoHamPyR8/hKBO\n TRgIOFbY00zXikOLsI2fRGZvOih8TzpGu0OtjSlImsPlncMVeiqocAAkn9YLuBke7mvs\n HtSenEbKJYYYmEBoe8ESyJEipqhJPl5hZHrWXXaP/HzY5Qu0j81DoxAbd2qQ1gUpNOjj\n aAaw==", "X-Gm-Message-State": "AOJu0Yyaan91Ai+LHaz67AR7MklXhG3X7byG1XqLJ0k/6OZAQ2LpXjfV\n D2/OedbL2wyn5pM3qSq1rz/LHaLB8eCjYlnrPib/qgcuQqafWhXuWGnGNz3fzmBg", "X-Gm-Gg": "AeBDieuDLIYp33Do3T41kjln/whi30Px6hOLCXWbOlFW/akcpmHlNPY3Dtg1w5LP/HD\n OLdFnmhXvq1UpTmalJC96hnjPN1gstnLnk3kpScjMeh3I1X+EItDo6qrnzdV372TASuKCq8b6pY\n Flux34acy3HaUOY1kAtfuF+27sc2yUm4uEZ8NeOJnfbBcQoT+4V/MeamaXm8sD1qdbGfrbuAn5X\n M2Du2C2G6oKz/Mb6yl4ZKdeTJ7dNFBDKh8hrAcWgjzYkEgfNfSBUu4Bdyp5TtGYA6Da7/z0qUho\n QMpZe9WZKMwrSwbirrXm6lPtvqO7XKE7TfyNI1AGHqOTMg2GKL4O6kf7konNq4JScnJcDoO0dYi\n +U/u8V9o76t9CSrPVw4JuBTgtjSBB7kbevA8DcU7OyGpt8WTmOdtRrpzNLEaL96sTz5TqTT40J8\n d7lv6+lr51NJl9/DaJysfv8ZqNYqmZ+OHW244kSIDffD2OgFXXWQ0gSARHO4/VUmzAze6+SMbt", "X-Received": "by 2002:a05:6000:2304:b0:43d:75ec:26f7 with SMTP id\n ffacd0b85a97d-4464aced724mr14325698f8f.29.1777471077272;\n Wed, 29 Apr 2026 06:57:57 -0700 (PDT)", "From": "Joshua Lant <joshualant@gmail.com>", "To": "linux-cxl@vger.kernel.org", "Cc": "qemu-devel@nongnu.org, Jonathan.Cameron@huawei.com,\n arpit1.kumar@samsung.com, Joshua Lant <joshualant@gmail.com>", "Subject": "[RFC QEMU PATCH 02/10] qdev/qbus: Allow hidden devices to be busless\n on QEMU startup", "Date": "Wed, 29 Apr 2026 14:48:36 +0100", "Message-ID": "<20260429135717.3048713-3-joshualant@gmail.com>", "X-Mailer": "git-send-email 2.47.3", "In-Reply-To": "<20260429135717.3048713-1-joshualant@gmail.com>", "References": "<20260429135717.3048713-1-joshualant@gmail.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2a00:1450:4864:20::42d;\n envelope-from=joshualant@gmail.com; helo=mail-wr1-x42d.google.com", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no", "X-Spam_action": "no action", "X-Mailman-Approved-At": "Wed, 29 Apr 2026 16:03:14 -0400", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "Extend the capability for hiding devices, introduced for virtio-net\ndevice in:\n\ncommit f3a8505656935cde32e28c1c6317f725084da1e0\nAuthor: Jens Freimann <jfreimann@redhat.com>\nDate: Tue Oct 29 12:48:55 2019 +0100\nqdev/qbus: add hidden device support\n\nCurrently only endpoint devices can be hidden with a primary device\nand failover (known static configuration). However, looking at future\ncomposable systems, we see a need for hidden devices which have no associated\nbus upon boot. Move the check for hidden devices to before the bus\nsearch, and if it is hidden ignore the case where the device was\ndescribed on the CLI without the \"bus=\" field.\n\nThis is motivated by a specific use-case: implementing the VCS\ncommand set, part of the CXL specification (CXL r3.2 Section 7.1.3). In\nthis scenario a switch controlled by a Fabric Manager is able to change the\nvirtual hierarchy of devices seen by a guest within a fixed physical system\ntopology. The connecting bus is not known until runtime when\na bind command is issued by the Fabric Manager.\n\nSigned-off-by: Joshua Lant <joshualant@gmail.com>\n---\n system/qdev-monitor.c | 10 ++++++++--\n 1 file changed, 8 insertions(+), 2 deletions(-)", "diff": "diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c\nindex f2aa400a77..b51dfe0645 100644\n--- a/system/qdev-monitor.c\n+++ b/system/qdev-monitor.c\n@@ -650,6 +650,7 @@ DeviceState *qdev_device_add_from_qdict(const QDict *opts,\n DeviceState *dev;\n BusState *bus = NULL;\n QDict *properties;\n+ bool hide_device;\n \n driver = qdict_get_try_str(opts, \"driver\");\n if (!driver) {\n@@ -663,6 +664,11 @@ DeviceState *qdev_device_add_from_qdict(const QDict *opts,\n return NULL;\n }\n \n+ /* Is the device hidden from the guest?\n+ * If yes, no need to find a default bus if none given...\n+ * Bus could be provided at runtime (i.e. in a switch)*/\n+ hide_device = qdev_should_hide_device(opts, from_json, errp);\n+\n /* find bus */\n path = qdict_get_try_str(opts, \"bus\");\n if (path != NULL) {\n@@ -675,14 +681,14 @@ DeviceState *qdev_device_add_from_qdict(const QDict *opts,\n driver, object_get_typename(OBJECT(bus)));\n return NULL;\n }\n- } else if (dc->bus_type != NULL) {\n+ } else if (dc->bus_type != NULL && !hide_device) {\n bus = qdev_find_default_bus(dc, errp);\n if (!bus) {\n return NULL;\n }\n }\n \n- if (qdev_should_hide_device(opts, from_json, errp)) {\n+ if (hide_device) {\n if (bus && !qbus_is_hotpluggable(bus)) {\n error_setg(errp, \"Bus '%s' does not support hotplugging\",\n bus->name);\n", "prefixes": [ "RFC", "QEMU", "02/10" ] }