All of lore.kernel.org
 help / color / mirror / Atom feed
From: Punit Agrawal <punitagrawal@gmail.com>
To: Rob Herring <robh+dt@kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Leonardo Bras <leobras.c@gmail.com>,
	"open list:ARM/Rockchip SoC..."
	<linux-rockchip@lists.infradead.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	PCI <linux-pci@vger.kernel.org>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	wqu@suse.com, Robin Murphy <robin.murphy@arm.com>,
	Peter Geis <pgwipeout@gmail.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Brian Norris <briannorris@chromium.org>,
	Shawn Lin <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: Wed, 16 Jun 2021 21:53:45 +0900	[thread overview]
Message-ID: <878s3at1gm.fsf@stealth> (raw)
In-Reply-To: <CAL_JsqLhOFHwBwtMFMnuEaXsDs9sqzUPS=68t+bDnbFsfXgo+Q@mail.gmail.com> (Rob Herring's message of "Tue, 15 Jun 2021 15:18:15 -0600")

Hi Rob,

Rob Herring <robh+dt@kernel.org> writes:

> On Mon, Jun 14, 2021 at 5:05 PM Punit Agrawal <punitagrawal@gmail.com> 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>
>
> I think we've beat this one to death.
>
> Reviewed-by: Rob Herring <robh@kernel.org>

Thanks for taking a look. Hopefully everybody is happy with this
version and the patch can get merged soon.

I assume Bjorn will pick this up as a fix with Alex's Tested-by tag. Let
me know if any other steps are needed.

Thanks,
Punit

[...]


WARNING: multiple messages have this Message-ID (diff)
From: Punit Agrawal <punitagrawal@gmail.com>
To: Rob Herring <robh+dt@kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
	 Marc Zyngier <maz@kernel.org>,
	Leonardo Bras <leobras.c@gmail.com>,
	 "open list:ARM/Rockchip SoC..."
	<linux-rockchip@lists.infradead.org>,
	 linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	 PCI <linux-pci@vger.kernel.org>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	 wqu@suse.com,  Robin Murphy <robin.murphy@arm.com>,
	 Peter Geis <pgwipeout@gmail.com>,
	 Ard Biesheuvel <ardb@kernel.org>,
	 Brian Norris <briannorris@chromium.org>,
	 Shawn Lin <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: Wed, 16 Jun 2021 21:53:45 +0900	[thread overview]
Message-ID: <878s3at1gm.fsf@stealth> (raw)
In-Reply-To: <CAL_JsqLhOFHwBwtMFMnuEaXsDs9sqzUPS=68t+bDnbFsfXgo+Q@mail.gmail.com> (Rob Herring's message of "Tue, 15 Jun 2021 15:18:15 -0600")

Hi Rob,

Rob Herring <robh+dt@kernel.org> writes:

> On Mon, Jun 14, 2021 at 5:05 PM Punit Agrawal <punitagrawal@gmail.com> 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>
>
> I think we've beat this one to death.
>
> Reviewed-by: Rob Herring <robh@kernel.org>

Thanks for taking a look. Hopefully everybody is happy with this
version and the patch can get merged soon.

I assume Bjorn will pick this up as a fix with Alex's Tested-by tag. Let
me know if any other steps are needed.

Thanks,
Punit

[...]


_______________________________________________
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: Punit Agrawal <punitagrawal@gmail.com>
To: Rob Herring <robh+dt@kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
	 Marc Zyngier <maz@kernel.org>,
	Leonardo Bras <leobras.c@gmail.com>,
	 "open list:ARM/Rockchip SoC..."
	<linux-rockchip@lists.infradead.org>,
	 linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	 PCI <linux-pci@vger.kernel.org>,
	Alexandru Elisei <alexandru.elisei@arm.com>,
	 wqu@suse.com,  Robin Murphy <robin.murphy@arm.com>,
	 Peter Geis <pgwipeout@gmail.com>,
	 Ard Biesheuvel <ardb@kernel.org>,
	 Brian Norris <briannorris@chromium.org>,
	 Shawn Lin <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: Wed, 16 Jun 2021 21:53:45 +0900	[thread overview]
Message-ID: <878s3at1gm.fsf@stealth> (raw)
In-Reply-To: <CAL_JsqLhOFHwBwtMFMnuEaXsDs9sqzUPS=68t+bDnbFsfXgo+Q@mail.gmail.com> (Rob Herring's message of "Tue, 15 Jun 2021 15:18:15 -0600")

Hi Rob,

Rob Herring <robh+dt@kernel.org> writes:

> On Mon, Jun 14, 2021 at 5:05 PM Punit Agrawal <punitagrawal@gmail.com> 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>
>
> I think we've beat this one to death.
>
> Reviewed-by: Rob Herring <robh@kernel.org>

Thanks for taking a look. Hopefully everybody is happy with this
version and the patch can get merged soon.

I assume Bjorn will pick this up as a fix with Alex's Tested-by tag. Let
me know if any other steps are needed.

Thanks,
Punit

[...]


_______________________________________________
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-16 12:53 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 [this message]
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
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=878s3at1gm.fsf@stealth \
    --to=punitagrawal@gmail.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=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.