All of lore.kernel.org
 help / color / mirror / Atom feed
From: Domenico Andreoli <domenico.andreoli@linux.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Punit Agrawal <punitagrawal@gmail.com>,
	robh+dt@kernel.org, maz@kernel.org, leobras.c@gmail.com,
	linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	alexandru.elisei@arm.com, wqu@suse.com, robin.murphy@arm.com,
	pgwipeout@gmail.com, ardb@kernel.org, briannorris@chromium.org,
	shawn.lin@rock-chips.com, Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [PATCH v4] PCI: of: Clear 64-bit flag for non-prefetchable memory below 4GB
Date: Fri, 18 Jun 2021 15:55:43 +0200	[thread overview]
Message-ID: <YMyl31ERhGDE1yGh@m4> (raw)
In-Reply-To: <20210616231234.GA3018015@bjorn-Precision-5520>

[-- Attachment #1: Type: text/plain, Size: 2766 bytes --]

On Wed, Jun 16, 2021 at 06:12:34PM -0500, Bjorn Helgaas wrote:
> On Tue, Jun 15, 2021 at 08:04:57AM +0900, Punit Agrawal wrote:
> > Alexandru and Qu reported this resource allocation failure on
> > ROCKPro64 v2 and ROCK Pi 4B, both based on the RK3399:
> > 
> >   pci_bus 0000:00: root bus resource [mem 0xfa000000-0xfbdfffff 64bit]
> >   pci 0000:00:00.0: PCI bridge to [bus 01]
> >   pci 0000:00:00.0: BAR 14: no space for [mem size 0x00100000]
> >   pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
> > 
> > "BAR 14" is the PCI bridge's 32-bit non-prefetchable window, and our
> > PCI allocation code isn't smart enough to allocate it in a host
> > bridge window marked as 64-bit, even though this should work fine.
> > 
> > A DT host bridge description includes the windows from the CPU
> > address space to the PCI bus space.  On a few architectures
> > (microblaze, powerpc, sparc), the DT may also describe PCI devices
> > themselves, including their BARs.
> > 
> > Before 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource
> > flags for 64-bit memory addresses"), of_bus_pci_get_flags() ignored
> > the fact that some DT addresses described 64-bit windows and BARs.
> > That was a problem because the virtio virtual NIC has a 32-bit BAR
> > and a 64-bit BAR, and the driver couldn't distinguish them.
> > 
> > 9d57e61bf723 set IORESOURCE_MEM_64 for those 64-bit DT ranges, which
> > fixed the virtio driver.  But it also set IORESOURCE_MEM_64 for host
> > bridge windows, which exposed the fact that the PCI allocator isn't
> > smart enough to put 32-bit resources in those 64-bit windows.
> > 
> > Clear IORESOURCE_MEM_64 from host bridge windows since we don't need
> > that information.
> > 
> > Fixes: 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource flags for 64-bit memory addresses")
> > Reported-at: https://lore.kernel.org/lkml/7a1e2ebc-f7d8-8431-d844-41a9c36a8911@arm.com/
> > Reported-by: Alexandru Elisei <alexandru.elisei@arm.com>
> > Reported-by: Qu Wenruo <wqu@suse.com>
> > Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
> > Signed-off-by: Punit Agrawal <punitagrawal@gmail.com>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Rob Herring <robh+dt@kernel.org>
> 
> Applied with:
> 
>     Tested-by: Alexandru Elisei <alexandru.elisei@arm.com>
>     Reviewed-by: Rob Herring <robh@kernel.org>
>     Acked-by: Ard Biesheuvel <ardb@kernel.org>
> 
> to for-linus for v5.13, thanks a lot!

Late-tested-by: Domenico Andreoli <domenico.andreoli@linux.com>

See https://lore.kernel.org/lkml/YMyTUv7Jsd89PGci@m4/T/#u

Thanks!

Dom

-- 
rsa4096: 3B10 0CA1 8674 ACBA B4FE  FCD2 CE5B CF17 9960 DE13
ed25519: FFB4 0CC3 7F2E 091D F7DA  356E CC79 2832 ED38 CB05

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Domenico Andreoli <domenico.andreoli@linux.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Punit Agrawal <punitagrawal@gmail.com>,
	robh+dt@kernel.org, maz@kernel.org, leobras.c@gmail.com,
	linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	alexandru.elisei@arm.com, wqu@suse.com, robin.murphy@arm.com,
	pgwipeout@gmail.com, ardb@kernel.org, briannorris@chromium.org,
	shawn.lin@rock-chips.com, Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [PATCH v4] PCI: of: Clear 64-bit flag for non-prefetchable memory below 4GB
Date: Fri, 18 Jun 2021 15:55:43 +0200	[thread overview]
Message-ID: <YMyl31ERhGDE1yGh@m4> (raw)
In-Reply-To: <20210616231234.GA3018015@bjorn-Precision-5520>


[-- Attachment #1.1: Type: text/plain, Size: 2766 bytes --]

On Wed, Jun 16, 2021 at 06:12:34PM -0500, Bjorn Helgaas wrote:
> On Tue, Jun 15, 2021 at 08:04:57AM +0900, Punit Agrawal wrote:
> > Alexandru and Qu reported this resource allocation failure on
> > ROCKPro64 v2 and ROCK Pi 4B, both based on the RK3399:
> > 
> >   pci_bus 0000:00: root bus resource [mem 0xfa000000-0xfbdfffff 64bit]
> >   pci 0000:00:00.0: PCI bridge to [bus 01]
> >   pci 0000:00:00.0: BAR 14: no space for [mem size 0x00100000]
> >   pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
> > 
> > "BAR 14" is the PCI bridge's 32-bit non-prefetchable window, and our
> > PCI allocation code isn't smart enough to allocate it in a host
> > bridge window marked as 64-bit, even though this should work fine.
> > 
> > A DT host bridge description includes the windows from the CPU
> > address space to the PCI bus space.  On a few architectures
> > (microblaze, powerpc, sparc), the DT may also describe PCI devices
> > themselves, including their BARs.
> > 
> > Before 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource
> > flags for 64-bit memory addresses"), of_bus_pci_get_flags() ignored
> > the fact that some DT addresses described 64-bit windows and BARs.
> > That was a problem because the virtio virtual NIC has a 32-bit BAR
> > and a 64-bit BAR, and the driver couldn't distinguish them.
> > 
> > 9d57e61bf723 set IORESOURCE_MEM_64 for those 64-bit DT ranges, which
> > fixed the virtio driver.  But it also set IORESOURCE_MEM_64 for host
> > bridge windows, which exposed the fact that the PCI allocator isn't
> > smart enough to put 32-bit resources in those 64-bit windows.
> > 
> > Clear IORESOURCE_MEM_64 from host bridge windows since we don't need
> > that information.
> > 
> > Fixes: 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource flags for 64-bit memory addresses")
> > Reported-at: https://lore.kernel.org/lkml/7a1e2ebc-f7d8-8431-d844-41a9c36a8911@arm.com/
> > Reported-by: Alexandru Elisei <alexandru.elisei@arm.com>
> > Reported-by: Qu Wenruo <wqu@suse.com>
> > Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
> > Signed-off-by: Punit Agrawal <punitagrawal@gmail.com>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Rob Herring <robh+dt@kernel.org>
> 
> Applied with:
> 
>     Tested-by: Alexandru Elisei <alexandru.elisei@arm.com>
>     Reviewed-by: Rob Herring <robh@kernel.org>
>     Acked-by: Ard Biesheuvel <ardb@kernel.org>
> 
> to for-linus for v5.13, thanks a lot!

Late-tested-by: Domenico Andreoli <domenico.andreoli@linux.com>

See https://lore.kernel.org/lkml/YMyTUv7Jsd89PGci@m4/T/#u

Thanks!

Dom

-- 
rsa4096: 3B10 0CA1 8674 ACBA B4FE  FCD2 CE5B CF17 9960 DE13
ed25519: FFB4 0CC3 7F2E 091D F7DA  356E CC79 2832 ED38 CB05

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

WARNING: multiple messages have this Message-ID (diff)
From: Domenico Andreoli <domenico.andreoli@linux.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Punit Agrawal <punitagrawal@gmail.com>,
	robh+dt@kernel.org, maz@kernel.org, leobras.c@gmail.com,
	linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	alexandru.elisei@arm.com, wqu@suse.com, robin.murphy@arm.com,
	pgwipeout@gmail.com, ardb@kernel.org, briannorris@chromium.org,
	shawn.lin@rock-chips.com, Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [PATCH v4] PCI: of: Clear 64-bit flag for non-prefetchable memory below 4GB
Date: Fri, 18 Jun 2021 15:55:43 +0200	[thread overview]
Message-ID: <YMyl31ERhGDE1yGh@m4> (raw)
In-Reply-To: <20210616231234.GA3018015@bjorn-Precision-5520>


[-- Attachment #1.1: Type: text/plain, Size: 2766 bytes --]

On Wed, Jun 16, 2021 at 06:12:34PM -0500, Bjorn Helgaas wrote:
> On Tue, Jun 15, 2021 at 08:04:57AM +0900, Punit Agrawal wrote:
> > Alexandru and Qu reported this resource allocation failure on
> > ROCKPro64 v2 and ROCK Pi 4B, both based on the RK3399:
> > 
> >   pci_bus 0000:00: root bus resource [mem 0xfa000000-0xfbdfffff 64bit]
> >   pci 0000:00:00.0: PCI bridge to [bus 01]
> >   pci 0000:00:00.0: BAR 14: no space for [mem size 0x00100000]
> >   pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
> > 
> > "BAR 14" is the PCI bridge's 32-bit non-prefetchable window, and our
> > PCI allocation code isn't smart enough to allocate it in a host
> > bridge window marked as 64-bit, even though this should work fine.
> > 
> > A DT host bridge description includes the windows from the CPU
> > address space to the PCI bus space.  On a few architectures
> > (microblaze, powerpc, sparc), the DT may also describe PCI devices
> > themselves, including their BARs.
> > 
> > Before 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource
> > flags for 64-bit memory addresses"), of_bus_pci_get_flags() ignored
> > the fact that some DT addresses described 64-bit windows and BARs.
> > That was a problem because the virtio virtual NIC has a 32-bit BAR
> > and a 64-bit BAR, and the driver couldn't distinguish them.
> > 
> > 9d57e61bf723 set IORESOURCE_MEM_64 for those 64-bit DT ranges, which
> > fixed the virtio driver.  But it also set IORESOURCE_MEM_64 for host
> > bridge windows, which exposed the fact that the PCI allocator isn't
> > smart enough to put 32-bit resources in those 64-bit windows.
> > 
> > Clear IORESOURCE_MEM_64 from host bridge windows since we don't need
> > that information.
> > 
> > Fixes: 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource flags for 64-bit memory addresses")
> > Reported-at: https://lore.kernel.org/lkml/7a1e2ebc-f7d8-8431-d844-41a9c36a8911@arm.com/
> > Reported-by: Alexandru Elisei <alexandru.elisei@arm.com>
> > Reported-by: Qu Wenruo <wqu@suse.com>
> > Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
> > Signed-off-by: Punit Agrawal <punitagrawal@gmail.com>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Rob Herring <robh+dt@kernel.org>
> 
> Applied with:
> 
>     Tested-by: Alexandru Elisei <alexandru.elisei@arm.com>
>     Reviewed-by: Rob Herring <robh@kernel.org>
>     Acked-by: Ard Biesheuvel <ardb@kernel.org>
> 
> to for-linus for v5.13, thanks a lot!

Late-tested-by: Domenico Andreoli <domenico.andreoli@linux.com>

See https://lore.kernel.org/lkml/YMyTUv7Jsd89PGci@m4/T/#u

Thanks!

Dom

-- 
rsa4096: 3B10 0CA1 8674 ACBA B4FE  FCD2 CE5B CF17 9960 DE13
ed25519: FFB4 0CC3 7F2E 091D F7DA  356E CC79 2832 ED38 CB05

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-06-18 13:55 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-14 23:04 [PATCH v4] PCI: of: Clear 64-bit flag for non-prefetchable memory below 4GB Punit Agrawal
2021-06-14 23:04 ` Punit Agrawal
2021-06-14 23:04 ` Punit Agrawal
2021-06-15  8:46 ` Alexandru Elisei
2021-06-15  8:46   ` Alexandru Elisei
2021-06-15  8:46   ` Alexandru Elisei
2021-06-16 12:48   ` Punit Agrawal
2021-06-16 12:48     ` Punit Agrawal
2021-06-16 12:48     ` Punit Agrawal
2021-06-15 21:18 ` Rob Herring
2021-06-15 21:18   ` Rob Herring
2021-06-15 21:18   ` Rob Herring
2021-06-16 12:53   ` Punit Agrawal
2021-06-16 12:53     ` Punit Agrawal
2021-06-16 12:53     ` Punit Agrawal
2021-06-16 14:08 ` Ard Biesheuvel
2021-06-16 14:08   ` Ard Biesheuvel
2021-06-16 14:08   ` Ard Biesheuvel
2021-06-16 23:12 ` Bjorn Helgaas
2021-06-16 23:12   ` Bjorn Helgaas
2021-06-16 23:12   ` Bjorn Helgaas
2021-06-18 13:55   ` Domenico Andreoli [this message]
2021-06-18 13:55     ` Domenico Andreoli
2021-06-18 13:55     ` Domenico Andreoli
2021-06-18 15:32     ` Bjorn Helgaas
2021-06-18 15:32       ` Bjorn Helgaas
2021-06-18 15:32       ` 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=YMyl31ERhGDE1yGh@m4 \
    --to=domenico.andreoli@linux.com \
    --cc=alexandru.elisei@arm.com \
    --cc=ardb@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=briannorris@chromium.org \
    --cc=helgaas@kernel.org \
    --cc=leobras.c@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=maz@kernel.org \
    --cc=pgwipeout@gmail.com \
    --cc=punitagrawal@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=shawn.lin@rock-chips.com \
    --cc=wqu@suse.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.