Re: pci_bus_for_each_resource, transparent bridges and rsrc_nonstatic.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 22 March 2010 06:00:41 am Dominik Brodowski wrote:
> Komuro reports the following issue:
> 
> 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93) (prog-if 01 [Subtractive decode])
> ...
> 	Bus: primary=00, secondary=04, subordinate=05, sec-latency=32
> 	I/O behind bridge: 00001000-00001fff
> 	Memory behind bridge: d2000000-d40fffff
> 	Prefetchable memory behind bridge: 00000000d0000000-00000000d1ffffff
> 
> 04:06.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b6)
> 
> Iterating over the bus (4) resources used to report just IO 0x1000-0x1ffff,
> MEM d2...-d4..., prefetch d0...-d1..., and that's exactly what we need in
> drivers/pcmcia/rsrc_nonstatic.c . However, the newly added
> pci_bus_for_each_resource() seems to return _also_ additional resources,
> which we need to exclude in drivers/pcmcia/rssrc_nonstatic.c . Any ideas on
> how to fix this issue?

This was probably broken by 2fe2abf896c1 or maybe 89a74ecccd1f7, but
I don't see how yet.

Before those changes, we had this:

  #define PCI_BUS_NUM_RESOURCES  16
  static int nonstatic_autoadd_resources(struct pcmcia_socket *s)
      ...
      for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
          struct resource *root = socket->dev->bus->resource[i];

so we used to iterate over all 16 possible bus resources, not just four.

Can you please collect a dmesg log from b16694f70c (just before my
changes) and another from 7bc5e3f2be32 (just after) so we can compare
them?

You can open a kernel bugzilla, assign it to me, and attach the logs
there, if you want.

Bjorn

> > yenta_cardbus 0000:04:06.0: pcmcia: parent PCI bridge I/O window: 0x1000 - 0x1fff
> > yenta_cardbus 0000:04:06.0: pcmcia: parent PCI bridge Memory window: 0xd2000000 - 0xd40fffff
> > yenta_cardbus 0000:04:06.0: pcmcia: parent PCI bridge Memory window: 0xd0000000 - 0xd1ffffff
> > yenta_cardbus 0000:04:06.0: pcmcia: parent PCI bridge I/O window: 0x0 - 0xcf7
> > yenta_cardbus 0000:04:06.0: pcmcia: parent PCI bridge I/O window: 0xd00 - 0xffff
> > yenta_cardbus 0000:04:06.0: pcmcia: parent PCI bridge Memory window: 0xa0000 - 0xbffff
> > yenta_cardbus 0000:04:06.0: pcmcia: parent PCI bridge Memory window: 0xc0000000 - 0xfebfffff
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux