* [PATCH] [POWERPC] pci: fix bogus test for unassigned resources
@ 2008-02-29 3:58 Benjamin Herrenschmidt
0 siblings, 0 replies; only message in thread
From: Benjamin Herrenschmidt @ 2008-02-29 3:58 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
A bogus test for unassigned resources that came from our 32 bits
PCI code ended up being "merged" by my previous patch series,
breaking some 64 bits setups where devices have legal resources
ending at 0xffffffff.
This fixes it by completely changing the test. We now test for
res->start == 0, as the generic code expects, and we also only
do so on platforms that don't have the PPC_PCI_PROBE_ONLY flag
set, as there are cases of pSeries and iSeries where it could
be a valid value and those can't reassign devices.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
arch/powerpc/kernel/pci-common.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- linux-work.orig/arch/powerpc/kernel/pci-common.c 2008-02-29 13:37:51.000000000 +1100
+++ linux-work/arch/powerpc/kernel/pci-common.c 2008-02-29 14:39:28.000000000 +1100
@@ -748,7 +748,13 @@ static void __devinit pcibios_fixup_reso
struct resource *res = dev->resource + i;
if (!res->flags)
continue;
- if (res->end == 0xffffffff) {
+ /* On platforms that have PPC_PCI_PROBE_ONLY set, we don't
+ * consider 0 as an unassigned BAR value. It's technically
+ * a valid value, but linux doesn't like it... so when we can
+ * re-assign things, we do so, but if we can't, we keep it
+ * around and hope for the best...
+ */
+ if (res->start == 0 && !(ppc_pci_flags & PPC_PCI_PROBE_ONLY)) {
pr_debug("PCI:%s Resource %d %016llx-%016llx [%x] is unassigned\n",
pci_name(dev), i,
(unsigned long long)res->start,
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-02-29 3:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-29 3:58 [PATCH] [POWERPC] pci: fix bogus test for unassigned resources Benjamin Herrenschmidt
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).