Re: [PATCH] x86/PCI: coalesce overlapping host bridge windows

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

 



On Fri, Sep 24, 2010 at 10:07:49AM -0700, Jesse Barnes wrote:
> On Wed, 22 Sep 2010 11:09:19 -0600
> Bjorn Helgaas <bjorn.helgaas@xxxxxx> wrote:
> 
> > 
> > Some BIOSes provide PCI host bridge windows that overlap, e.g.,
> > 
> >     pci_root PNP0A03:00: host bridge window [mem 0xb0000000-0xffffffff]
> >     pci_root PNP0A03:00: host bridge window [mem 0xafffffff-0xdfffffff]
> >     pci_root PNP0A03:00: host bridge window [mem 0xf0000000-0xffffffff]
> > 
> > If we simply insert these as children of iomem_resource, the second window
> > fails because it conflicts with the first, and the third is inserted as a
> > child of the first, i.e.,
> > 
> >     b0000000-ffffffff PCI Bus 0000:00
> >       f0000000-ffffffff PCI Bus 0000:00
> > 
> > When we claim PCI device resources, this can cause collisions like this
> > if we put them in the first window:
> > 
> >     pci 0000:00:01.0: address space collision: [mem 0xff300000-0xff4fffff] conflicts with PCI Bus 0000:00 [mem 0xf0000000-0xffffffff]
> > 
> > Host bridge windows are top-level resources by definition, so it doesn't
> > make sense to make the third window a child of the first.  This patch
> > coalesces any host bridge windows that overlap.  For the example above,
> > the result is this single window:
> > 
> >     pci_root PNP0A03:00: host bridge window [mem 0xafffffff-0xffffffff]
> > 
> > This fixes a 2.6.34 regression.
> 
> Also applied, same comment as before applies here.

Huh, did this get dropped somewhere along the way?  I don't see it in
rc1.

Bjorn
--
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