Messages in this thread | | | From | Bjorn Helgaas <> | Subject | Re: [patch] fix 64-vbit prefetchable memory resource BARs | Date | Mon, 3 Nov 2008 14:42:10 -0600 |
| |
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@gelato.unsw.edu.au> > > 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
| |