From: Niklas Cassel <cassel@kernel.org>
To: "Krzysztof Wilczyński" <kw@linux.com>,
bhelgaas@google.com, mani@kernel.org
Cc: Frank Li <Frank.Li@nxp.com>,
helgaas@kernel.org, imx@lists.linux.dev, jdmason@kudzu.us,
jingoohan1@gmail.com, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, lpieralisi@kernel.org,
robh@kernel.org, dlemoal@kernel.org
Subject: Re: [PATCH v4 1/1] PCI: dwc: Fix index 0 incorrectly being interpreted as a free ATU slot
Date: Tue, 21 May 2024 12:16:55 +0200 [thread overview]
Message-ID: <Zkx0lzP76bmp4K0r@ryzen.lan> (raw)
In-Reply-To: <20240517170650.GC1947919@rocinante>
On Sat, May 18, 2024 at 02:06:50AM +0900, Krzysztof Wilczyński wrote:
> Hello,
>
> > When PERST# assert and deassert happens on the PERST# supported platforms,
> > the both iATU0 and iATU6 will map inbound window to BAR0. DMA will access
> > to the area that was previously allocated (iATU0) for BAR0, instead of the
> > new area (iATU6) for BAR0.
> >
> > Right now, we dodge the bullet because both iATU0 and iATU6 should
> > currently translate inbound accesses to BAR0 to the same allocated memory
> > area. However, having two separate inbound mappings for the same BAR is a
> > disaster waiting to happen.
> >
> > The mapping between PCI BAR and iATU inbound window are maintained in the
> > dw_pcie_ep::bar_to_atu[] array. While allocating a new inbound iATU map for
> > a BAR, dw_pcie_ep_inbound_atu() API will first check for the availability
> > of the existing mapping in the array and if it is not found (i.e., value in
> > the array indexed by the BAR is found to be 0), then it will allocate a new
> > map value using find_first_zero_bit().
> >
> > The issue here is, the existing logic failed to consider the fact that the
> > map value '0' is a valid value for BAR0. Because, find_first_zero_bit()
> > will return '0' as the map value for BAR0 (note that it returns the first
> > zero bit position).
> >
> > Due to this, when PERST# assert + deassert happens on the PERST# supported
> > platforms, the inbound window allocation restarts from BAR0 and the
> > existing logic to find the BAR mapping will return '6' for BAR0 instead of
> > '0' due to the fact that it considers '0' as an invalid map value.
> >
> > So fix this issue by always incrementing the map value before assigning to
> > bar_to_atu[] array and then decrementing it while fetching. This will make
> > sure that the map value '0' always represents the invalid mapping."
>
> Applied to controller/dwc, thank you!
>
> [1/1] PCI: dwc: Fix index 0 incorrectly being interpreted as a free ATU slot
> https://git.kernel.org/pci/pci/c/cd3c2f0fff46
>
> Krzysztof
Hello PCI maintainers,
There was a message sent out that this patch was applied, yet the patch does
not appear to be part of the pull request that was sent out yesterday:
https://lore.kernel.org/linux-pci/20240520222943.GA7973@bhelgaas/T/#u
In fact, there seems to be many PCI patches that have been reviewed and ready
to be included (some of them for months) that is not part of the pull request.
Looking at pci/next, these patches do not appear there either, so I assume
that these patches will also not be included in a follow-up pull request.
Some of these patches are actual fixes, like the patch in $subject, and do not
appear to depend on any other patches, so what is the reason for not including
them in the PCI pull request?
Kind regards,
Niklas
next prev parent reply other threads:[~2024-05-21 10:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-12 16:08 [PATCH v4 1/1] PCI: dwc: Fix index 0 incorrectly being interpreted as a free ATU slot Frank Li
2024-05-03 14:23 ` Frank Li
2024-05-17 17:06 ` Krzysztof Wilczyński
2024-05-21 10:16 ` Niklas Cassel [this message]
2024-05-21 14:14 ` Bjorn Helgaas
2024-05-21 14:19 ` Damien Le Moal
2024-05-21 14:50 ` Krzysztof Wilczyński
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=Zkx0lzP76bmp4K0r@ryzen.lan \
--to=cassel@kernel.org \
--cc=Frank.Li@nxp.com \
--cc=bhelgaas@google.com \
--cc=dlemoal@kernel.org \
--cc=helgaas@kernel.org \
--cc=imx@lists.linux.dev \
--cc=jdmason@kudzu.us \
--cc=jingoohan1@gmail.com \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=robh@kernel.org \
/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