bogus changes for generic pci_scan_slot() in ameslab-2.5

Jake Moilanen moilanen at austin.ibm.com
Wed Dec 3 04:43:07 EST 2003


This looks like the workaround for the pci multifunc problem that is
seen on LPARs.  The linux-2.6-pcibios-scan-all-fns-1.patch I posted in
the JS20 support email fixes the same problem, does not break ppc32, and
should probably used instead.

Thanks,
Jake

On Fri, 2003-11-28 at 09:41, Olaf Hering wrote:
> Good morning,
>
> what is the purpose of this change?
>
>
> diff -purN linux-2.5/drivers/pci/probe.c linuxppc64-2.5/drivers/pci/probe.c
> --- linux-2.5/drivers/pci/probe.c	2003-08-06 15:34:30.000000000 +0000
> +++ linuxppc64-2.5/drivers/pci/probe.c	2003-11-05 22:12:33.000000000 +0000
> @@ -552,6 +552,7 @@ int __devinit pci_scan_slot(struct pci_b
>  		struct pci_dev *dev;
>
>  		dev = pci_scan_device(bus, devfn);
> +#if 0
>  		if (func == 0) {
>  			if (!dev)
>  				break;
> @@ -560,6 +561,10 @@ int __devinit pci_scan_slot(struct pci_b
>  				continue;
>  			dev->multifunction = 1;
>  		}
> +#else
> +		if (!dev)
> +			continue;
> +#endif
>
>  		/* Fix up broken headers */
>  		pci_fixup_device(PCI_FIXUP_HEADER, dev);
>
> It breaks on ppc32, B&W G3, dies in indirect_read_config() because the
> pointer *cfg_data becomes bogus, devfn is > 0xff (no idea if that
> matters).
>
> turning #if 0 into #if 1 cures it. I havent tried it on other systems
> yet, but at least a PReP MTX+ works with the patch above.
>
>
>
> --
> USB is for mice, FireWire is for men!
>
> sUse lINUX ag, nÜRNBERG
>

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list