From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Gavin Shan <shangw@linux.vnet.ibm.com>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 3/5] PCI: Skip IORESOURCE_MMIO allocation for root bus without MMIO range
Date: Wed, 08 May 2013 08:28:02 +1000 [thread overview]
Message-ID: <1367965682.25488.26.camel@pasglop> (raw)
In-Reply-To: <1367965054-9013-4-git-send-email-yinghai@kernel.org>
On Tue, 2013-05-07 at 15:17 -0700, Yinghai Lu wrote:
> For x86 8 sockets or 32 sockets system that will have one root bus per socket,
> They may have some root buses do not have mmio non-pref range.
That seems very odd. Most device registers are non-prefetchable. I know
of no adapter today that would work in a prefetchable-only environment.
Are you sure that isn't the other way around ?
Regarding your 3.10 patches, me and Gavin will test your v3 later today
(ASAP) and will give you an Ack if they work, in which case they should
hit Linus as soon as Bjorn is comfortable with :-)
Cheers,
Ben.
> We should not fall into retry in this case, as root bus does
> not mmio non-pref range.
>
> We check if the root bus has mmio-nonpref range, and set bus_res_type_mask,
> and pass it to assign_resources and don't add mmio-nonpref res to failed list
> for root bus that does not have mmio-nonpref range.
> So even BIOS set wrong value to pci devices and bridges will still
> get cleared.
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>
> ---
> drivers/pci/setup-bus.c | 32 ++++++++++++++++++++++++++------
> 1 file changed, 26 insertions(+), 6 deletions(-)
>
> Index: linux-2.6/drivers/pci/setup-bus.c
> ===================================================================
> --- linux-2.6.orig/drivers/pci/setup-bus.c
> +++ linux-2.6/drivers/pci/setup-bus.c
> @@ -299,9 +299,17 @@ static void assign_requested_resources_s
> bool is_ioport_res_without_bus_support =
> (!(bus_res_type_mask & IORESOURCE_IO)) &&
> (res->flags & IORESOURCE_IO);
> + /*
> + * if the failed res is mmio, but bus does
> + * not have io port support, don't add it
> + */
> + bool is_mmio_nonpref_res_without_bus_support =
> + (!(bus_res_type_mask & IORESOURCE_MEM)) &&
> + ((res->flags & (IORESOURCE_MEM | IORESOURCE_PREFETCH)) == IORESOURCE_MEM);
>
> if (!is_rom_res_not_enabled &&
> - !is_ioport_res_without_bus_support)
> + !is_ioport_res_without_bus_support &&
> + !is_mmio_nonpref_res_without_bus_support)
> add_to_list(fail_head,
> dev_res->dev, res,
> 0 /* dont care */,
> @@ -1407,12 +1415,24 @@ static unsigned long pci_bus_res_type_ma
> int i;
> struct resource *r;
> unsigned long mask = 0;
> - unsigned long type_mask = IORESOURCE_IO | IORESOURCE_MEM |
> - IORESOURCE_PREFETCH;
>
> - pci_bus_for_each_resource(bus, r, i)
> - if (r)
> - mask |= r->flags & type_mask;
> + pci_bus_for_each_resource(bus, r, i) {
> + if (!r)
> + continue;
> +
> + if (r->flags & IORESOURCE_IO) {
> + mask |= IORESOURCE_IO;
> + continue;
> + }
> + if (r->flags & IORESOURCE_PREFETCH) {
> + mask |= IORESOURCE_PREFETCH;
> + continue;
> + }
> + if ((r->flags & (IORESOURCE_MEM | IORESOURCE_PREFETCH)) == IORESOURCE_MEM) {
> + mask |= IORESOURCE_MEM; /* nonpref only */
> + continue;
> + }
> + }
>
> return mask;
> }
next prev parent reply other threads:[~2013-05-07 22:28 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-05 0:10 Resource assignment oddities Benjamin Herrenschmidt
2013-05-05 0:15 ` Benjamin Herrenschmidt
2013-05-05 5:18 ` Yinghai Lu
2013-05-05 5:34 ` Benjamin Herrenschmidt
2013-05-05 7:09 ` Yinghai Lu
2013-05-05 7:52 ` Benjamin Herrenschmidt
[not found] ` <51871088.4594420a.0ccc.7300SMTPIN_ADDED_BROKEN@mx.google.com>
2013-05-06 3:04 ` Yinghai Lu
[not found] ` <20130506103159.GA16927@shangw.(null)>
2013-05-06 10:48 ` Benjamin Herrenschmidt
2013-05-06 19:56 ` Yinghai Lu
[not found] ` <5188b791.a110420a.0bea.077eSMTPIN_ADDED_BROKEN@mx.google.com>
2013-05-07 22:21 ` Yinghai Lu
[not found] ` <5189c22b.45f7440a.0a88.6b75SMTPIN_ADDED_BROKEN@mx.google.com>
2013-05-08 3:42 ` Yinghai Lu
2013-05-17 5:36 ` Benjamin Herrenschmidt
2013-05-21 17:28 ` Bjorn Helgaas
2013-05-21 17:39 ` Yinghai Lu
2013-05-21 22:01 ` Benjamin Herrenschmidt
2013-05-06 23:15 ` [PATCH 1/2] PCI: Split pci_assign_unassigned_resources to per root bus Yinghai Lu
2013-05-06 23:15 ` [PATCH 2/2] PCI: Skip IORESOURCE_IO size and allocation for root bus without ioport range Yinghai Lu
2013-05-07 0:50 ` [PATCH 1/2] PCI: Split pci_assign_unassigned_resources to per root bus Benjamin Herrenschmidt
[not found] ` <51885a04.c181440a.37c9.ffffa88eSMTPIN_ADDED_BROKEN@mx.google.com>
2013-05-07 7:34 ` Yinghai Lu
2013-05-21 20:41 ` Bjorn Helgaas
2013-05-07 22:17 ` [PATCH v3 0/5] PCI: Skip resource allocation for root bus without conresponding type resource Yinghai Lu
2013-05-07 22:17 ` [PATCH v3 1/5] PCI: Split pci_assign_unassigned_resources to per root bus Yinghai Lu
2013-05-07 22:17 ` [PATCH v3 2/5] PCI: Skip IORESOURCE_IO allocation for root bus without ioport range Yinghai Lu
2013-05-07 22:17 ` [PATCH v3 3/5] PCI: Skip IORESOURCE_MMIO allocation for root bus without MMIO range Yinghai Lu
2013-05-07 22:28 ` Benjamin Herrenschmidt [this message]
2013-05-07 22:44 ` Yinghai Lu
2013-05-08 1:16 ` Benjamin Herrenschmidt
2013-05-08 3:57 ` Yinghai Lu
2013-05-07 22:17 ` [PATCH v3 4/5] PCI: Enable pci bridge when it is needed Yinghai Lu
2013-05-07 22:17 ` [PATCH v3 5/5] PCI: Retry assign unassigned resources for hotadd root bus Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 0/8] PCI: Skip resource allocation for root bus without conresponding type resource Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 1/8] PCI: Don't use temp bus for pci_bus_release_bridge_resources Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 2/8] PCI: Use pci_walk_bus to detect unassigned resources Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 3/8] PCI: Introduce enable_local to prepare per root bus handling Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 4/8] PCI: Split pci_assign_unassigned_resources to per root bus Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 5/8] PCI: Skip IORESOURCE_IO allocation for root bus without ioport range Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 6/8] PCI: Skip IORESOURCE_MMIO allocation for root bus without MMIO range Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 7/8] PCI: Enable pci bridge when it is needed Yinghai Lu
2013-05-22 6:38 ` [PATCH v4 8/8] PCI: Retry assign unassigned resources for hotadd root bus Yinghai Lu
2013-06-01 6:03 ` [PATCH v5 0/7] PCI: Change assign unassigned resources per root bus bassis Yinghai Lu
2013-06-01 6:03 ` [PATCH v5 2/7] PCI: Don't use temp bus for pci_bus_release_bridge_resources Yinghai Lu
2013-06-01 6:03 ` [PATCH v5 3/7] PCI: Use pci_walk_bus to detect unassigned resources Yinghai Lu
2013-06-25 21:15 ` Bjorn Helgaas
2013-06-25 21:38 ` Benjamin Herrenschmidt
2013-06-25 21:46 ` Bjorn Helgaas
2013-06-26 8:07 ` Yinghai Lu
2013-06-26 7:38 ` Yinghai Lu
2013-06-01 6:03 ` [PATCH v5 4/7] PCI: Introduce enable_local to prepare per root bus handling Yinghai Lu
2013-06-01 6:03 ` [PATCH v5 5/7] PCI: Split pci_assign_unassigned_resources to per root bus Yinghai Lu
2013-06-01 6:03 ` [PATCH v5 6/7] PCI: Enable pci bridge when it is needed Yinghai Lu
2013-06-01 6:03 ` [PATCH v5 7/7] PCI: Retry assign unassigned resources for hotadd root bus Yinghai Lu
2013-06-01 6:03 ` [PATCH v5 1/7] PCI: Don't let mmio fallback to must-only, if ioport fails with must+optional Yinghai Lu
2013-06-22 3:00 ` [PATCH v5 0/7] PCI: Change assign unassigned resources per root bus bassis Yinghai Lu
[not found] ` <518786a7.64bbec0a.58a0.1f6bSMTPIN_ADDED_BROKEN@mx.google.com>
2013-05-22 14:54 ` Resource assignment oddities Bjorn Helgaas
2013-05-22 16:59 ` Yinghai Lu
2013-05-22 17:21 ` Bjorn Helgaas
2013-05-22 20:44 ` Benjamin Herrenschmidt
2013-05-22 21:01 ` Yinghai Lu
2013-05-22 20:43 ` Benjamin Herrenschmidt
2013-05-22 21:00 ` Yinghai Lu
2013-05-22 21:13 ` Benjamin Herrenschmidt
2013-05-22 20:50 ` Yinghai Lu
[not found] ` <519dcfbe.89e9420a.4934.488bSMTPIN_ADDED_BROKEN@mx.google.com>
2013-05-23 17:08 ` Yinghai Lu
2013-05-23 17:12 ` Bjorn Helgaas
2013-05-23 17:17 ` Yinghai Lu
2013-05-23 19:47 ` Bjorn Helgaas
2013-05-23 21:00 ` Yinghai Lu
2013-05-23 21:23 ` Benjamin Herrenschmidt
2013-05-23 22:16 ` Yinghai Lu
2013-05-24 15:59 ` Bjorn Helgaas
2013-05-24 16:33 ` Benjamin Herrenschmidt
2013-05-24 16:34 ` Yinghai Lu
2013-05-23 17:11 ` [PATCH] PCI: Don't let mmio fallback to must-only, if ioport fails with must+optional Yinghai Lu
2013-05-24 17:25 ` Bjorn Helgaas
2013-05-24 23:31 ` [PATCH v3] " Yinghai Lu
2013-05-24 23:34 ` [PATCH] " Yinghai Lu
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=1367965682.25488.26.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=shangw@linux.vnet.ibm.com \
--cc=yinghai@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;
as well as URLs for NNTP newsgroup(s).