Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2221248/?format=api
{ "id": 2221248, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2221248/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/CAGpo2meKY6SXsESU-D0PGgbESLqdF8UBF-tmThxOvk2XUDpEzw@mail.gmail.com/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/1.1/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<CAGpo2meKY6SXsESU-D0PGgbESLqdF8UBF-tmThxOvk2XUDpEzw@mail.gmail.com>", "date": "2026-04-08T22:31:59", "name": "PCI: release empty sibling resources during bridge window resize", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "b3fe8ca42626a686aeb1eb694a7669826043c19b", "submitter": { "id": 93094, "url": "http://patchwork.ozlabs.org/api/1.1/people/93094/?format=api", "name": "Geramy Loveless", "email": "gloveless@jqluv.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/CAGpo2meKY6SXsESU-D0PGgbESLqdF8UBF-tmThxOvk2XUDpEzw@mail.gmail.com/mbox/", "series": [ { "id": 499223, "url": "http://patchwork.ozlabs.org/api/1.1/series/499223/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=499223", "date": "2026-04-08T22:31:59", "name": "PCI: release empty sibling resources during bridge window resize", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/499223/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2221248/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2221248/checks/", "tags": {}, "headers": { "Return-Path": "\n <linux-pci+bounces-52179-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-pci@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=jqluv-com.20251104.gappssmtp.com\n header.i=@jqluv-com.20251104.gappssmtp.com header.a=rsa-sha256\n header.s=20251104 header.b=HaFHmRNT;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-pci+bounces-52179-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=jqluv-com.20251104.gappssmtp.com\n header.i=@jqluv-com.20251104.gappssmtp.com header.b=\"HaFHmRNT\"", "smtp.subspace.kernel.org;\n arc=pass smtp.client-ip=209.85.160.169", "smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=jqluv.com", "smtp.subspace.kernel.org;\n spf=none smtp.mailfrom=jqluv.com" ], "Received": [ "from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4frd9G1bmMz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 08:32:18 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 4E61B300BC8F\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 8 Apr 2026 22:32:15 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 9ABE835F60F;\n\tWed, 8 Apr 2026 22:32:12 +0000 (UTC)", "from mail-qt1-f169.google.com (mail-qt1-f169.google.com\n [209.85.160.169])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 15BE0322A\n\tfor <linux-pci@vger.kernel.org>; Wed, 8 Apr 2026 22:32:10 +0000 (UTC)", "by mail-qt1-f169.google.com with SMTP id\n d75a77b69052e-50697d6a69cso1607841cf.2\n for <linux-pci@vger.kernel.org>; Wed, 08 Apr 2026 15:32:10 -0700 (PDT)" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775687532; cv=pass;\n b=eCC/8tYR2+zWnL+TWoBfU7HoKpPJuR3sjHaT2lrtc3TBQO+hKXCK4Prln9eCMrWX6BFG8aHkv6rtBYVttfQMJ2Y6I22ZSX/qkT8Tt6+GIy/iTPIPim8aPu2Xjn3EQwWerH5I767GPQqj+d4s/XSX5ps4ls/KVavtRgtyE0mWUZs=", "i=1; a=rsa-sha256; t=1775687530; cv=none;\n d=google.com; s=arc-20240605;\n b=J9obMpmzeeP0BIP4qbTFlDQeL/svcFeyTUSxDoMzZtQTJ+6+s03uOLDFPmZT9LuzUh\n x0GUC5YEJ9AujaK57jV6fq0Jzas0AJoBD9tKl8N3stBlKMxjs733rsCrt6UqgIUO7MCu\n 7i3Daypg8wquLwRVPHJqazyBgSZSIQCWvshjeSfj3hD5nmDvCp8+ffL86nhlGRzN2AZW\n 8OPrvnvCAiKgdf8vk+5mCC4lbwNqQ5GL51pIdbqNjMD0VJM1wHlcQn0EJnelfcbOu8jN\n Cro3mTA1KbJO/nxL36YbM58kEPYATcGOtkCNAC2yvR0A2Dc1GvFXvczqG6CXEYPepZTT\n 6G6Q==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775687532; c=relaxed/simple;\n\tbh=IZpPMH2uXRAuJm3GoI9DOO84aQStal6cbQJmXC/Si1Y=;\n\th=MIME-Version:From:Date:Message-ID:Subject:To:Cc:Content-Type;\n b=bHLJljLK26tGSQxbKbcuhg3t43HTSPIkYikDCXheaVVATORV5WafX5PtkVp0OWOC1UeSzVE3zQ84Hz7lIVPFnpXEbKWK2YeZtc7DLarRfPa3QKizX8Tixr19Z7BuaoKq6TmkKuiwUoHHLSEgldMGuY5TYY+XsYp+n6qO+bQ8k44=", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:mime-version:dkim-signature;\n bh=qTWgccEr99tvNib9c0TXHqLjF/qDPCnDy+II/n6qryg=;\n fh=3vasvzV3PWarSQU4ptWMrJZYWSFv15+BXbY1lciJg+k=;\n b=MX3sc2Cq0Ma7rlb/PqozZikhORZM7z1IPcxfgitkQAyvK2g5cfBFcZfEQG67ZvaG8x\n 3oMMBuIb0JcSbFvwncRI6y5/zo+e0YS3hcxjW75PUo0PIgt17D9idB5rzhWdrFr6mGW8\n U37t3L6/6pDg5bihYfoIciHnnDa6Q+Q9IWdc36gFhyxgxsTDWozHF36EGxsyLYfKTFLi\n R2RrhyANBIi/Vol/Z0XrcbyjCogjmHKG0b4+ZoL3KdhAdxzuYarXfAj1XdwD2dfi0fbo\n wJRNatnkKTn6kJlR8FBRrzQswICYMp+Wg7NOd3eYBc4Qj9/vZD4tlVP/qtJLrGgD4qfk\n oJIQ==;\n darn=vger.kernel.org" ], "ARC-Authentication-Results": [ "i=2; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=jqluv.com;\n spf=none smtp.mailfrom=jqluv.com;\n dkim=pass (2048-bit key) header.d=jqluv-com.20251104.gappssmtp.com\n header.i=@jqluv-com.20251104.gappssmtp.com header.b=HaFHmRNT;\n arc=pass smtp.client-ip=209.85.160.169", "i=1; mx.google.com; arc=none" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=jqluv-com.20251104.gappssmtp.com; s=20251104; t=1775687530;\n x=1776292330; darn=vger.kernel.org;\n h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject\n :date:message-id:reply-to;\n bh=qTWgccEr99tvNib9c0TXHqLjF/qDPCnDy+II/n6qryg=;\n b=HaFHmRNTH8Oib5ih4a8uCFWXkrXa5Czc4zpSBr6tKSADPZj0Rr4czVTosJcnUnEYQk\n LFZtV6olMzWZYNuE34dVdJIANi7jUjM0fKSw4TrriTjd6eVm2UavsJE6gXFyM0WPqj4d\n XrHZC8xY+hqhx/I6htWFWO3rBcP+VBW1MB65CshcdMCFt2KOIV3iIqI2itVY+uDPdq8/\n yoYphlP3gVVy24peVQN7+bbhlcQeM6eBk2P/UZ5Isr1pnMMWqlSvAK79WKm/c5HlO9eF\n h4dS8XXWOOwvHbypekYcJSDk6MDkn7schUxCS9UAFzU4QxdRUL2EKzLo174/BwzEiOTL\n lF2A==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775687530; x=1776292330;\n h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg\n :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=qTWgccEr99tvNib9c0TXHqLjF/qDPCnDy+II/n6qryg=;\n b=Xt4K0qDzK2H/LVNjUqy625B9SJtirS8z2WzHAsDCfCYzAzYuov4cpp4XDj42Gc2eYK\n oW2XauYg0UGiPpb8F8CJ41Sh3OrC4VNF8rg+x1u024O6Gr1t+c7eClPyrB6M2CfRlu0Y\n 5EF3dSgmWb84V9JvwKohrPhJBJG7/jvYBB8926HC/IoEYZwXbebFyM5zLNHKtXcMZOQl\n FYuIaTavWeEz3Ci6cKu7JI/hMG4mTHZHok6Uo2eEMnzWoAO46yps9sJ/IOFANP/wdbNw\n ms5iFdxKfHoTe+c2utRj8Paz9LDBxForDU96VUMl6kxciSg1z6Wv5M8rTlh5IG1m+txI\n HRWg==", "X-Gm-Message-State": "AOJu0Yz+KLjX9kXmZdtip60Ogzz3XZyG8H9aK6R8pme1lWZE96g2T6PW\n\tUb5I5kJqlav7M+pW7KYhvBIY/UyQrnFXu4HsmaW6nMtZodnpMNklOL0om7UcN3ZqAg5q2HU+Ibt\n\tDqQksVF2Okm2A6fPNeckn5N+odE+piY5Z0+veNtS1cv6cFdoOkA26UKf4KyFT", "X-Gm-Gg": "AeBDiesUBnuA0bM/8Wjap8ruJk0eEmRlbI9WmaAWiIbbVLIzDKrrnUyO1vDaWmOQZlc\n\tNDUZ6llL06HpCHPXzAq5znXD/JuLD9wsJBOdPdQdzS9pybP++JIETy6/tQcDdUgYNqD0nhpV/F2\n\txIIBUhXtwAFU3ChROv7dFDgzNrkWL05o8fyjUgx88y+mzjTPT2MT7NZcbE1IWMXca5KAkeAKX8w\n\tkuaS8/NX6ToDAc92GZAmNFeTEzEJwe6cFmbA7wKmWhNusntYc7BoSxNwNpfB7jTb8S1X5uocwcP\n\ts8dt", "X-Received": "by 2002:a05:622a:298e:b0:50b:3e4d:7ffa with SMTP id\n d75a77b69052e-50d62b191a6mr313634201cf.45.1775687529667; Wed, 08 Apr 2026\n 15:32:09 -0700 (PDT)", "Precedence": "bulk", "X-Mailing-List": "linux-pci@vger.kernel.org", "List-Id": "<linux-pci.vger.kernel.org>", "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "From": "Geramy Loveless <gloveless@jqluv.com>", "Date": "Wed, 8 Apr 2026 15:31:59 -0700", "X-Gm-Features": "AQROBzAYRd2k4J9iQ-ethz1Ie32d9w_Wd4dppEmM_5LK5tSu3ozEdURBbY8cotQ", "Message-ID": "\n <CAGpo2meKY6SXsESU-D0PGgbESLqdF8UBF-tmThxOvk2XUDpEzw@mail.gmail.com>", "Subject": "[PATCH] PCI: release empty sibling resources during bridge window\n resize", "To": "linux-pci@vger.kernel.org", "Cc": "ilpo.jarvinen@linux.intel.com", "Content-Type": "text/plain; charset=\"UTF-8\"" }, "content": "When pci_resize_resource() walks up the bridge hierarchy via\npbus_reassign_bridge_resources(), bridge windows with any child\nresources are refused release. This prevents BAR resize on devices\nbehind multi-port PCIe switches (such as Thunderbolt docks) where\nempty sibling downstream ports hold small reservations that block the\nparent bridge window from being freed and re-sized.\n\nAdd pci_bus_release_bridge_resources_safe() which verifies that a\nresource subtree contains no active children before releasing it,\nand use it in pbus_reassign_bridge_resources() to clear empty sibling\nreservations so the bridge window can grow.\n\nSigned-off-by: Geramy Loveless <gloveless@jqluv.com>\n---\ndrivers/pci/setup-bus.c | 30 +++++++++++++++++++++++++++---\n1 file changed, 27 insertions(+), 3 deletions(-)\n\nstruct list_head *saved)\n{\n@@ -2316,8 +2340,8 @@ static int pbus_reassign_bridge_resources(struct\npci_bus *bus, struct resource *\ni = pci_resource_num(bridge, res);\n- /* Ignore BARs which are still in use */\n- if (!res->child) {\n+ if (!res->child ||\n+ pci_bus_release_bridge_resources_safe(bridge->subordinate, res)) {\nret = pci_dev_res_add_to_list(saved, bridge, res, 0, 0);\nif (ret)\nreturn ret;\n@@ -2327,7 +2351,7 @@ static int pbus_reassign_bridge_resources(struct\npci_bus *bus, struct resource *\nconst char *res_name = pci_resource_name(bridge, i);\npci_warn(bridge,\n- \"%s %pR: was not released (still contains assigned resources)\\n\",\n+ \"%s %pR: not released, active children present\\n\",\nres_name, res);\n}", "diff": "diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c\nindex 4cf120ebe..9a3a23819 100644\n--- a/drivers/pci/setup-bus.c\n+++ b/drivers/pci/setup-bus.c\n@@ -2297,6 +2297,30 @@\nEXPORT_SYMBOL_GPL(pci_assign_unassigned_bridge_resources);\n* release it when possible. If the bridge window contains assigned\n* resources, it cannot be released.\n*/\n+\n+/*\n+ * Release child resources from a bridge window so it can be freed and\n+ * re-sized, but only if the entire subtree is empty (no active device\n+ * resources underneath). Walks the resource tree recursively to handle\n+ * arbitrarily deep bridge hierarchies. Returns true if the resources\n+ * were released or the window was already empty.\n+ */\n+static bool pci_bus_release_bridge_resources_safe(struct pci_bus *bus,\n+ struct resource *res)\n+{\n+ struct resource *child;\n+\n+ for (child = res->child; child; child = child->sibling) {\n+ if (child->child &&\n+ !pci_bus_release_bridge_resources_safe(bus, child))\n+ return false;\n+ }\n+\n+ if (res->child)\n+ pci_bus_release_bridge_resources(bus, res, whole_subtree);\n+ return true;\n+}\n+\nstatic int pbus_reassign_bridge_resources(struct pci_bus *bus, struct\nresource *res,\n", "prefixes": [] }