pci_resource_end() changed problem with 2.6.14

Benjamin Herrenschmidt benh at kernel.crashing.org
Fri Nov 4 17:56:09 EST 2005


On Thu, 2005-11-03 at 19:55 -0800, Geoff Levand wrote:
> I found that the serial port probe code in drivers/serial/8250_pci.c 
> no longer works properly for ppc64 in 2.6.14.  It seems the value 
> returned by pci_resource_len() on ppc64 changed from 8 to 16 since 
> 2.6.13.  I tested on a PC and pci_resource_len() returns 8 as 
> expected.
> 
> Any help on on where to look for the problem would be appreciated.
> 
> Here's the code that hits the problem:
> 
> 		if (pci_resource_flags(dev, i) & IORESOURCE_IO &&
> 		    pci_resource_len(dev, i) == 8 &&
> 
> And here are some test results:

Interesting... What does an lspci -vv shows for the BARs of the PCI
card ? Also, what do you have in /proc/device-tree  ? What is the
machine precisely ?

2.6.14 now uses the OF device-tree to generate the linux PCI tree
instead of going directly to PCI probing. It's possible that this is
causing your problem if for some reason, the BAR sizing done by OF ends
up being different than what the kernel does ...

Ben.





More information about the Linuxppc64-dev mailing list