From: Bjorn Helgaas <helgaas@kernel.org>
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
Kai-Heng Feng <kai.heng.feng@canonical.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] PCI: Release coalesced resource
Date: Tue, 6 Jun 2023 17:36:13 -0500 [thread overview]
Message-ID: <20230606223613.GA1147805@bhelgaas> (raw)
In-Reply-To: <20230525153248.712779-1-ross.lagerwall@citrix.com>
On Thu, May 25, 2023 at 04:32:48PM +0100, Ross Lagerwall wrote:
> When contiguous windows are coalesced, the resource is invalidated and
> consequently not added to the bus. However, it remains in the resource
> hierarchy:
>
> ...
> ef2fff00-ef2fffff : 0000:00:13.2
> ef2fff00-ef2fffff : ehci_hcd
> 00000000-00000000 : PCI Bus 0000:00
> f0000000-f3ffffff : PCI MMCONFIG 0000 [bus 00-3f]
> f0000000-f3ffffff : Reserved
> ...
I assume the "00000000-00000000 : PCI Bus 0000:00" is the problematic
part? Is there anything in dmesg that shows the resources before they
were coalesced?
Is there an error message we could include here to link the problem
with the solution?
> In some cases (e.g. the Xen scratch region), this causes future calls to
> allocate_resource() to choose an inappropriate location which the caller
> cannot handle. Fix by releasing the resource and removing from the
> hierarchy.
>
> Fixes: 7c3855c423b1 ("PCI: Coalesce host bridge contiguous apertures")
7c3855c423b1 appeared in v5.16, so we may need a stable tag?
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
> drivers/pci/probe.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 0b2826c4a832..00ed20ac0dd6 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -997,8 +997,10 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
> resource_list_for_each_entry_safe(window, n, &resources) {
> offset = window->offset;
> res = window->res;
> - if (!res->flags && !res->start && !res->end)
> + if (!res->flags && !res->start && !res->end) {
> + release_resource(res);
> continue;
> + }
>
> list_move_tail(&window->node, &bridge->windows);
>
> --
> 2.31.1
>
next prev parent reply other threads:[~2023-06-06 22:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-25 15:32 [PATCH] PCI: Release coalesced resource Ross Lagerwall
2023-06-05 8:44 ` Ross Lagerwall
2023-06-06 22:36 ` Bjorn Helgaas [this message]
2023-06-09 15:39 ` Ross Lagerwall
2023-06-09 21:45 ` Bjorn Helgaas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230606223613.GA1147805@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=kai.heng.feng@canonical.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=ross.lagerwall@citrix.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox