svn commit: r237673 - head/sys/dev/pci

Marius Strobl marius at FreeBSD.org
Wed Jun 27 22:17:54 UTC 2012


Author: marius
Date: Wed Jun 27 22:17:52 2012
New Revision: 237673
URL: http://svn.freebsd.org/changeset/base/237673

Log:
  For subtractively decoding bridges, don't try to grow windows but pass
  the request up the tree in order to be on the safe side. Growing windows
  in this case would mean to switch resources to positive decoding and
  it's unclear how to correctly handle this. At least with ALi/ULi M5249
  PCI-PCI bridges, this also just doesn't work out of the box.
  
  Reviewed by:	jhb
  MFC after:	3 days

Modified:
  head/sys/dev/pci/pci_pci.c

Modified: head/sys/dev/pci/pci_pci.c
==============================================================================
--- head/sys/dev/pci/pci_pci.c	Wed Jun 27 22:13:40 2012	(r237672)
+++ head/sys/dev/pci/pci_pci.c	Wed Jun 27 22:17:52 2012	(r237673)
@@ -1038,7 +1038,7 @@ pcib_alloc_resource(device_t dev, device
 	case SYS_RES_IOPORT:
 		r = pcib_suballoc_resource(sc, &sc->io, child, type, rid, start,
 		    end, count, flags);
-		if (r != NULL)
+		if (r != NULL || (sc->flags & PCIB_SUBTRACTIVE) != 0)
 			break;
 		if (pcib_grow_window(sc, &sc->io, type, start, end, count,
 		    flags) == 0)
@@ -1062,7 +1062,7 @@ pcib_alloc_resource(device_t dev, device
 		}
 		r = pcib_suballoc_resource(sc, &sc->mem, child, type, rid,
 		    start, end, count, flags);
-		if (r != NULL)
+		if (r != NULL || (sc->flags & PCIB_SUBTRACTIVE) != 0)
 			break;
 		if (flags & RF_PREFETCHABLE) {
 			if (pcib_grow_window(sc, &sc->pmem, type, start, end,


More information about the svn-src-all mailing list