[POWERPC] Fix bogus test for unassigned PCI resources
A bogus test for unassigned resources that came from our 32-bit PCI code ended up being "merged" by my previous patch series, breaking some 64-bit 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> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Родитель
595be948cc
Коммит
7f172890a8
|
@ -748,7 +748,13 @@ static void __devinit pcibios_fixup_resources(struct pci_dev *dev)
|
|||
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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче