On Tue, 14 Jun 2011 13:04:29 -0600 Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: > This fixes a minor regression where broken PCI devices that use the > reserved "11" memory BAR type worked before e354597cce but not after. > > The low four bits of a memory BAR are "PTT0" where P=1 for prefetchable > BARs, and TT is as follows: > > 00 32-bit BAR, anywhere in lower 4GB > 01 anywhere below 1MB (reserved as of PCI 2.2) > 10 64-bit BAR > 11 reserved > > Prior to e354597cce, we treated "0100" as a 64-bit BAR and all others, > including prefetchable 64-bit BARs ("1100") as 32-bit BARs. The e354597cce > fix, which appeared in 2.6.28, treats "x1x0" as 64-bit BARs, so the > reserved "x110" types are treated as 64-bit instead of 32-bit. > > This patch returns to treating the reserved "11" type as a 32-bit BAR and > adds a warning if we see it. > > It also logs a note if we see a 1M BAR. This is not a warning, because > such hardware conforms to pre-PCI 2.2 spec, but I think it's worth noting > because Linux ignores the 1M restriction if it ever has to assign the BAR. > > CC: Peter Chubb <peterc@xxxxxxxxxxxxxxxxxx> > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=35952 > Reported-by: Jan Zwiegers <jan@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > --- Applied these guys, thanks Bjorn (and sorry for the delay! I should have had you handling patches while I was traveling). Thanks, -- Jesse Barnes, Intel Open Source Technology Center -- 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