On Sunday 12 October 2008 06:49:04 pm Peter Chubb wrote: > Since patch 6ac665c63dcac8fcec534a1d224ecbb8b867ad59 > my infiniband controller hasn't worked. This is because it has > 64-bit prefetchable memory, which was mistakenly being taken to be > 32-bit memory. The resource flags in this case are > PCI_BASE_ADDRESS_MEM_TYPE_64|PCI_BASE_ADDRESS_MEM_PREFETCH. > > This patch checks only for the PCI_BASE_ADDRESS_MEM_TYPE_64 bit; thus > whether the region is prefetchable or not is ignored. This fixes my > Infiniband. I think this patch needs to be put in a 2.6.27-stable release. Without it, we ignore the upper bits of 64-bit prefetchable BARs. This is commit e354597cce8d219d135d65e585dc4f30323486b9 in Linus's tree. http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e354597cce8d219d135d65e585dc4f30323486b9 > Signed-off-by: Peter Chubb <peterc@xxxxxxxxxxxxxxxxxx> > > Index: linux-2.6-git/drivers/pci/probe.c > =================================================================== > --- linux-2.6-git.orig/drivers/pci/probe.c 2008-10-13 10:49:46.012798465 +1100 > +++ linux-2.6-git/drivers/pci/probe.c 2008-10-13 11:35:43.016329442 +1100 > @@ -219,7 +219,7 @@ > > res->flags = bar & ~PCI_BASE_ADDRESS_MEM_MASK; > > - if (res->flags == PCI_BASE_ADDRESS_MEM_TYPE_64) > + if (res->flags & PCI_BASE_ADDRESS_MEM_TYPE_64) > return pci_bar_mem64; > return pci_bar_mem32; > } > > > -- > Dr Peter Chubb http://www.gelato.unsw.edu.au peterc AT gelato.unsw.edu.au > http://www.ertos.nicta.com.au ERTOS within National ICT Australia > -- > 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 > -- 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